Grails select 不返回对象而是返回字符串

标签 grails

如何获取选择标记以返回对象本身而不是字符串? 每当我创建一个新的 BusinessArea 时,我都会收到一条错误消息:

“无法将类型 java.lang.String 的属性值转换为属性businessType 所需的类型 bassscheduler.BusinessType;嵌套异常为 java.lang.IllegalStateException:无法将类型 [java.lang.String] 的值转换为所需类型[bassscheduler.BusinessType] 属性businessType:找不到匹配的编辑器或转换策略”

我做错了什么吗?我似乎找不到任何关于如何让选择标签返回对象本身而不是字符串的内容

感谢您的帮助

我有以下模型

class BusinessArea {

  BusinessType businessType
  // The date and time this occurence was created
  Date dateCreated
  // The date and time that this occurrence was last maintained.
  Date lastUpdated
  // The identifier for the OPERATOR or PROGRAM that last maintained this occurrence.
  int lastMaintainer
  // The name of the business area
  String name

  static constraints = {
    lastMaintainer blank: false, nullable: false
    name blank: false, nullable: false
  }
}

和 Controller 操作

def createBusinessArea() {

  def businessArea = new BusinessArea(params)
  if (!businessArea.save(flush: true)) {
    render view: "index", model : [businessArea: businessArea, activeTemplate: "businessArea"]
    return 
  }
  redirect controller: "admin", action: "index", model : [activeTemplate: "businessArea"]
}

将此表单提交给 Controller 操作

<g:form controller="admin" action="createBusinessArea"> 
  <div class="row">
    <legend>Business Area</legend>
<div class="span3">
  <label>Business Area:</label>
  <g:textField name="businessArea"/>
</div>
<div class="span3">
  <label>Business Type:</label>
  <g:select name="businessType" from="${businessTypes}" optionValue="name"/>
</div>
  </div>

  <div class="buttons">
    <div class="row">
      <div class="span7" style="padding-top: 2em">
    <g:submitButton class="btn btn-primary pull-right" name="create" value="Create" />
  </div>
    </div>
  </div>
</g:form>

最佳答案

这个:

<g:select name="businessType" from="${businessTypes}" optionValue="name"/>

应该是:

<g:select name="businessType.id" from="${businessTypes}" optionValue="name" optionKey="id" />

关于Grails select 不返回对象而是返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13300313/

相关文章:

hibernate - Grails 2.4.4:createCriteria:如何按顺序使用日期和整数之和?

grails - 如何在 Grails 中搜索其集合中包含另一个元素的元素?

exception - Grails - 无法在空对象上调用方法 getAt()

grails - Grails像帖子一样测试Curl

hibernate - 如何在 Grails 3.0.1 中设置 hibernate 方言

java - 升级 2.2.1 到 2.3.6 后 Grails run-app 错误

grails - 在Grails中查询多对多关系时出错

grails - 处理 Grails 域类验证错误的最佳方法

grails spring security ui 登录有时会出现奇怪的重定向

ajax - CSRF Guard on Grails AJAX 请求