如何使用grailsfields插件通过textArea更改f:field(textField)

如何使用grailsfields插件通过textArea更改f:field(textField),grails,grails-plugin,Grails,Grails Plugin,在版本1.1中,我们可以阅读: Support `widget:'textarea'` constraint. Grails有一个textArea字段。这是以下示例: 但是,如果我们使用的是Grails Fields插件,并且我们有如下代码: <f:field bean="popularExpressionsInstance" property="omg" /> 如何将其转换为textArea以允许键入几行文本?在您的popularExpressions域类中,为omg

在版本1.1中,我们可以阅读:

Support `widget:'textarea'` constraint.
Grails有一个textArea字段。这是以下示例:


但是,如果我们使用的是Grails Fields插件,并且我们有如下代码:

<f:field  bean="popularExpressionsInstance" property="omg" />


如何将其转换为textArea以允许键入几行文本?

在您的
popularExpressions
域类中,为
omg

static constraints = {
  ...
  omg widget: 'textarea'
}
注意:例如,如果需要控制textarea的样式,则需要将其包含在
f:field
标记的主体中

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

您可以直接在GSP中重写标记体,如@user2264997所述,但使用
${property}
${it.value}
变量:

<f:field property="description" widget="textarea">
    <g:textArea name="${ property }" cols="40" rows="5"
        value="${it.value}" />
</f:field>


谢谢!但是只要使用
,该字段成为文本区域。为什么要使用约束?@chelder如果您使用
小部件:“textarea”
在约束中定义它,您就是在告诉Grails您希望如何在Scaffolding中呈现该属性。如果使用默认的脚手架,Grails将为该属性生成一个textarea。对于您的用例,它可能不是必需的。请更改

<f:field property="description" widget="textarea">
    <g:textArea name="${ property }" cols="40" rows="5"
        value="${it.value}" />
</f:field>