При использовании Grails код GSP для отображения каждого поля формы выглядит примерно так:
<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>
Обратите внимание, что почти одинаковые 5 строк кода GSP / HTML повторяются для каждого поля формы. Мне это не кажется СУХИМЫМ, и мне интересно, нашли ли другие лучший подход?
Я нашел 2 плагина, которые пытаются решить эту проблему, помощник по формам и поля bean-полей . Если у кого-то есть опыт использования любого из них, мне было бы очень интересно услышать от них. В качестве альтернативы, если есть другие решения / плагины, пожалуйста, дайте мне знать.
Спасибо.
Дон