Форма Liferay не проверяет обязательные поля при добавлении, несмотря на то, что проверяет их при редактировании

У меня есть объект Liferay, созданный Service Builder, с полем «имя», описанным как required в portlet-model-hints.xml:

<model-hints>
    <model name="com.example.model.Person">
        [...]
        <field name="name" type="String">
            <validator name="required" />
        </field>
        [...]
    </model>
</model-hints>

Добавление и редактирование основаны на одном и том же JSP edit_person.jsp:

<%@include file="/html/init.jsp"%>
<%
Person person = null;
long personId = ParamUtil.getLong(request, "personId");
if (personId > 0) person = PersonLocalServiceUtil.getPerson(personId);
%>
<aui:model-context bean="<%= person %>" model="<%= Person.class %>" />
<portlet:renderURL var="viewPersonURL" />
<portlet:actionURL name='<%= person == null ? "addPerson" : "updatePerson" %>'
   var="editPersonURL" windowState="normal" />

<aui:form action="<%= editPersonURL %>" method="POST" name="fm">
    <aui:fieldset>
        <aui:input type="hidden" name="personId"
          value='<%= person == null ? "" : person.getPersonId() %>'/>
        <aui:input name="name" />
    </aui:fieldset>

    <aui:button-row><aui:button type="submit" /></aui:button-row>
</aui:form>

ПРОБЛЕМА: при добавлении нового человека проверка не выполняется, я не могу ввести имя и отправить запрос, а объект сохраняется с пустым именем:

введите здесь описание изображения

Несмотря на то, что при редактировании этого человека применяется требование к имени:

введите здесь описание изображения

Это происходит в Firefox, но не в Chrome.


person Nicolas Raoul    schedule 28.01.2016    source источник
comment
Я подозреваю, что что-то не так с передачей модели (?). Я не специалист по Java, так что терпите меня. Глядя на addModelValidatorTags в InputTag.java, он проверяет, существует ли модель и есть ли валидаторы. Имеют ли оба они значение при добавлении и редактировании? См.: github.com/liferay/liferay-portal/blob/   -  person Byran Zaugg    schedule 29.01.2016


Ответы (1)


Это ошибка в Liferay 6.2:

https://issues.liferay.com/browse/LPS-48087

Эта ошибка была исправлена ​​в Liferay 7.0.0 M2.

person Nicolas Raoul    schedule 02.02.2016