Изобразете скрито поле вместо текстово поле с помощта на приставката Grails Fields

Има две текстови свойства от различни класове: createdBy и lastUpdatedBy. Те са само потребителското име на влезлия потребител. Те рендират с помощта на _widget.gsp в ${grails-app}/views/_fields/string/widget.gsp. Ето как изглежда _widget.gsp:

<g:if test="${property == 'createdBy' || property == 'lastUpdatedBy' }">
    <g:hiddenField name="${property}" value="${value}" />
</g:if>
<g:else>
        <input type="text" name="${property}" value="" <g:if test="${required}">required=""</g:if> id="${property}" />
</g:else>

За съжаление етикетите със звездички все още се изобразяват. Когато се опитвам да запазя, ми казва, че createdBy и lastUpdatedBy са задължителни, въпреки че те са в изходния код на страницата като скрити полета с попълнени правилни стойности.

Също така правилно ли е отношението ми към „задължително“?

Някаква идея как да се отърва от етикетите и задължителните звездички за скритите полета?

Благодаря.


person Chris Malan    schedule 13.03.2016    source източник


Отговори (1)


Това е начинът да го направите: Създайте тази структура на директория, съдържаща _wrapper.gsp:

grails-app/views/${controller}/${action}/${property}/_wrapper.gsp

_wrapper.gsp изглежда така:

<g:hiddenField name="${property}" value="${value}" />

Това ще ви трябва само за действия за създаване и редактиране. Това означава, че можете да копирате и поставите това там, където ви трябва. Просто, ако човек знае как да го направи.

person Chris Malan    schedule 14.03.2016