Pregunta

Cuando se usa grils, el código GSP para representar cada campo de formulario se parece a esto:

<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.

Encontré 2 complementos que intentan abordar este problema, el Forma ayudante y campos de frijoles. Si alguien tiene experiencia usando cualquiera de estos, estaría muy interesado en saber de ellos. Alternativamente, si hay otras soluciones/complementos, hágamelo saber.

Gracias. Don

¿Fue útil?

Solución

Utilizando el complemento de campo de frijoles. Su código se convertirá:

<bean:withBean beanName="person">
    <bean:field property="username" label="Login Name:"/>
    <bean:field property="userRealName" label="Full Name:"/>
    <bean:field property="passwd" label="Password:"/>
</bean:withBean>

¿Puedes encontrar una solución de secadora?

Otros consejos

Para aquellos que leen este hilo en el futuro - para Grials 2.x Branch Campos de gros El complemento se recomienda sobre los campos de frijoles, es realmente sucesor de los campos de frijoles y proporciona flexibilidad para anular las plantillas predeterminadas

Sí, el complemento de campos de frijoles está muy seco ... sus 20 líneas se pueden reemplazar con una línea:

<bean:form beanName="person" properties="username, userRealName, passwd”/>

(Suponiendo que tenga propiedades de I18n)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top