Grails "bean: input" (поля bean), показывающий неправильное свойство bean - PullRequest
3 голосов
/ 05 марта 2012

Поскольку мы обновились до версии Grail 2.0.1 (начиная с 2.0.0), все наши bean-компоненты, отображаемые через поля bean-компонентов, неправильно отображаются как первое свойство этого поля withBean.В приведенном ниже примере все [firstName, lastName, dateOfBirth, contactNumber] отображаются как просто 'firstName' (мы знаем, что это не просто сообщения, которые являются неправильными, поскольку в противном случае третье свойство (dateOfBirth) будет датойсредство выбора, а не просто текстовое поле).

Есть ли потенциальные обходные пути или предложения?

(plugins.bean-fields = 1.0-RC3)

Code

enter image description here

1 Ответ

0 голосов
/ 02 мая 2012

Я столкнулся с той же проблемой, и у меня есть обходной путь.

Я настроил шаблоны 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/>, все работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...