Liferay 表单在添加时不检查必填字段,尽管在编辑时检查了它们
Liferay form does not check required fields at Add, despite checking them at Edit
我有一个由 Service Builder 创建的 Liferay 实体,字段 "name" 在 portlet-model-hints.xml
中描述为 required
:
<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 上没有。
这是 Liferay 6.2 中的错误:
https://issues.liferay.com/browse/LPS-48087
此错误已在 Liferay 7.0.0 M2 中修复
我有一个由 Service Builder 创建的 Liferay 实体,字段 "name" 在 portlet-model-hints.xml
中描述为 required
:
<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 上没有。
这是 Liferay 6.2 中的错误:
https://issues.liferay.com/browse/LPS-48087
此错误已在 Liferay 7.0.0 M2 中修复