Hacer gros de desarrollo de desarrollo
-
22-09-2019 - |
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
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)