使用字段模板问题的Grails Fields插件

时间:2014-11-21 11:29:57

标签: templates grails plugins field

不幸的是,我无法找到使用Grails字段插件的好例子。 在我的应用程序中,我想将一些字段呈现为不同的类型,如文本区域或稍后的CKE编辑器。我的域名:

class Case {    
    String description
}

我已经创建了一个插件找到的_input.gsp: INFO formfields.FormFieldsTemplateService - 找到模板/ patchCase / description / input

它包含:

<f:field  bean="Case" property="description">
  <g:textArea name="description" cols="40" rows="5" maxlength="5000" value="some default text"/>
</f:field>

但是我得到了

ERROR errors.GrailsExceptionResolver  - NotReadablePropertyException occurred when processing request: [GET] /M3PatchManage/patchCase/create
Invalid property 'description' of bean class [java.lang.String]: Bean property 'description' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?. Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <f:all>: Error executing tag <f:field>: Invalid property 'description' of bean class [java.lang.String]: Bean property 'description' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

任何人都可以描述如何使用字段的自定义或提供具有良好描述的链接(插件文档非常薄)?

我在Grails 2.4上。

2 个答案:

答案 0 :(得分:4)

我认为您的问题是bean="Case"属性。看起来fields插件试图呈现String "Case"的属性而不是Case类的实例。

您应该将Case实例的模型键名称或实例本身传递给此属性。我猜这可能有以下任何一种方法:bean="case"bean="${case}"

这里&#39; s a Grails app of mine广泛使用了字段插件。一些示例字段插件模板是here,其中a form使用它们。

您会注意到,在几乎所有情况下,输入字段都会作为f:field标记的正文传递,例如

<f:field bean="competition" property="code" label="Code">
  <g:textField name="${property}" value="${value}" class="input-xlarge" maxlength="191"/>
</f:field>

这可以更简洁地表达为:

<f:field bean="competition" property="code" label="Code" 
        input-class="input-xlarge" input-maxlength="191"/>

答案 1 :(得分:0)

我遇到过同样的问题。尝试使用bean =“ $ {class}”而不是bean =“ class”。 在“类”上,输入要尝试使用的类的名称