0
檢查他們,我必須通過服務Builder創建的Liferay的實體,與portlet-model-hints.xml
描述爲required
領域的「名」:Liferay的形式,不檢查在添加所需的字段,儘管在編輯
<model-hints>
<model name="com.example.model.Person">
[...]
<field name="name" type="String">
<validator name="required" />
</field>
[...]
</model>
</model-hints>
添加和編輯
<%@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>
問題:由同一個JSP edit_person.jsp
加電時添加一個新的人,沒有驗證完成後,我可以不輸入姓名和推提交和方i救過一個空的名字:
儘管當編輯那個人,名字要求強制執行:
這發生在Firefox,但無法在Chrome 。
我懷疑有些事情錯了怎麼模型得到 「通過」 (?)。我不是一個爪哇人,所以請忍受我。查看'InputTag.java'中的'addModelValidatorTags',它檢查模型是否存在並且有驗證器。當你添加和編輯時,這兩個都有價值嗎?請參閱:https://github.com/liferay/liferay-portal/blob/cb772297a9d9ce2b7e384cd7aa927751f2f48d95/util-taglib/src/com/liferay/taglib/aui/InputTag.java#L135-L161 – Byran