Haciendo el desarrollo de formas Grails DRYer

Cuando se usa Grails, el código GSP para representar cada campo de formulario es algo así:

<tr class="prop">
  <td valign="top" class="name"><label for="username">Login Name:</label></td>
  <td valign="top" class="value ${hasErrors(bean: person, field: 'username', 'errors')}">
    <input type="text" id="username" name="username" value="${person.username?.encodeAsHTML()}"/>
  </td>
</tr>

<tr class="prop">
  <td valign="top" class="name"><label for="userRealName">Full Name:</label></td>
  <td valign="top" class="value ${hasErrors(bean: person, field: 'userRealName', 'errors')}">
    <input type="text" id="userRealName" name="userRealName" value="${person.userRealName?.encodeAsHTML()}"/>
  </td>
</tr>

<tr class="prop">
  <td valign="top" class="name"><label for="passwd">Password:</label></td>
  <td valign="top" class="value ${hasErrors(bean: person, field: 'passwd', 'errors')}">
    <input type="password" id="passwd" name="passwd" value="${person.passwd?.encodeAsHTML()}"/>
  </td>
</tr>

Observe que casi exactamente las mismas 5 líneas de código GSP / HTML se repiten para cada campo de formulario. Esto no me parece muy seco, y me pregunto si otros han encontrado un mejor enfoque.

He encontrado 2 complementos que intentan abordar este problema, elayudante de formulario ycampos de frijoles. Si alguien tiene experiencia en el uso de cualquiera de estos, me gustaría mucho saber de ellos. Alternativamente, si hay otras soluciones / complementos, hágamelo saber.

Gracias. Don

Respuestas a la pregunta(3)

Su respuesta a la pregunta