Grails:fields-1.2插件无法读取datamodel属性

时间:2012-06-01 13:06:21

标签: grails gsp grails-domain-class grails-2.0

数据模型

package com.foo.bar.baz.model

class Customer {
    Integer id
    String firstName
    String lastName
    .....
}

GSP

  ....
  <f:with bean="Customer">
      <f:field property="firstName"/>
  </f:with>
  ....

GSP不在views \ customer目录中,而是在views \ customerRegistration中。 当我尝试查看我得到的页面时:

  

URI   /对myApp / customerRegistration /索引   的   org.springframework.beans.NotReadablePropertyException   的消息   bean类[java.lang.String]的属性'firstName'无效:Bean属性'firstName'不可读或getter方法无效:getter的返回类型是否与setter的参数类型匹配?

为什么不能读取数据对象中的firstName字段?

我尝试在标记中添加完整的包(“bean =”com.foo.bar.baz.model.Customer“),它只更改了java.lang上面错误消息中的”bean类“。字符串到java.lang.Class

1 个答案:

答案 0 :(得分:1)

想出来。

fields标记需要一个实时Customer对象,而不是对该类的引用。为了解决这个问题,我做了以下几点:

在控制器中创建一个新的空客户对象并将其提供给视图:

render(view: "myView", model: [emptyCustomer: new Customer()])

然后更改视图以使用此对象,一切正常:

<f:with bean="emptyCustomer">
    <f:field property="firstName"/>
</f:with>