これを行うためにGrailsFieldsプラグインを使用しますが、これは扱います。
フォームフィールドレンダリング用のデフォルトテンプレートを簡単に作成できます。たとえば、私は次のようにしていますgrails-app/views/_fields/default/_field.gsp
:
<%@ page defaultCodec="html" %>
<div class="control-group${invalid ? ' error' : ''}">
<label class="control-label" for="${property}${index ?: ""}">${label}</label>
<div class="controls">
<%= widget.replace("id=\"${property}\"", "id=\"${property}${index ?: ""}\"") %>
<g:if test="${invalid}"><span class="help-inline">${errors.join('<br>')}</span></g:if>
</div>
</div>
HTMLからわかるように、エラーはインラインで表示されます。これが私のログインフォームの一部です:
<g:form controller="home" action="login" >
<f:field bean="user" property="email"/>
<f:field bean="user" property="password">
<g:field type="password" name="${property}" value="${value}"/>
</f:field>
</g:form>