0

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>

Add と Edit は、同じ 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 では発生しません。

4

1 に答える 1