Liferay表单不会在Add上检查必填字段,尽管在Edit中检查它们

时间:2016-01-28 08:48:14

标签: validation jsp liferay-aui alloy-ui liferay-6.2

我有一个由Service Builder创建的Liferay实体,其字段为" name"在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>

问题:当添加新人时,没有进行验证,我可以不输入任何名称并推送提交,并使用空名称保存实体:

enter image description here

尽管当编辑该人时,强制执行名称要求:

enter image description here

这种情况发生在Firefox上,但不会发生在Chrome上。

1 个答案:

答案 0 :(得分:1)

这是Liferay 6.2中的错误:

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

此错误已在Liferay 7.0.0 M2中修复