Я столкнулся с той же проблемой, и у меня есть обходной путь.
Я настроил шаблоны beanfield, извлеченные в шаблон gsp с именем /shared/_beanfieldConfig.gsp
, который я затем включил рендерингом перед вызовом любых тегов bean. например,
<g:render template="/shared/beanFieldConfig" />
<bean:withBean beanName='command'>
<bean:input property='username' />
Это хорошо работало в 1.3.7, и это означало, что я мог делиться beanFieldConfig между представлениями.
При обновлении до 2.0.3 я обнаружил ту же проблему, что и исходный вопрос. Я обнаружил, что могу обойти это, вставляя содержимое моего _beanFieldConfig
в каждом представлении.
Юк, но по крайней мере это означает, что мне не нужно переписывать все мои представления, чтобы использовать плагин замены (пока).
(изменить)
Интересно, что хотя конфигурация beanField в шаблоне render'd не работает, вставка его в taglib ДЕЛАЕТ.
так, хотя раньше у меня был beanFieldConfig
<bean:inputTemplate>
<div class='input ${errors ? 'errors' : '' }'>
${label}
${field}
<g:if test="${errors}">
${errors}
</g:if>
</div>
</bean:inputTemplate>
Если я определю эквивалентный тег -
def beanFieldConfig = {
bean.inputTemplate { m ->
m.with {
""" <div class='input ${errors ? 'errors' : '' }'>
${label}
${field}
${errors ?: ''}
</div>"""}
}
}
и затем в моем gsp замените <g:render template="/shared/beanFieldConfig" />
на <g:beanFieldConfig/>
, все работает.