2016-01-28 5 views
0

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

<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> 

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

enter image description here

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

enter image description here

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

+0

Я заподозрить нечто неправильно с тем, как модель становится «прошло» (?). Я не парень из Java, так что медведь со мной. Глядя на 'addModelValidatorTags' в' InputTag.java', он проверяет, существует ли модель и имеет валидаторы. У обоих есть ценность, когда вы добавляете и редактируете? См .: https://github.com/liferay/liferay-portal/blob/cb772297a9d9ce2b7e384cd7aa927751f2f48d95/util-taglib/src/com/liferay/taglib/aui/InputTag.java#L135-L161 – Byran

ответ