我有这个屏幕策略。客户和联系人是一对多的关系。当用户点击"创建联系人"时,我想跳过(A)," Save"之后的验证。联系人,应保留(A)中的输入值。
例如:
"创建"按钮:
<h:commandLink class="btn"
action="#{contactPersonController.add()}"
styleClass="btn pull-right plusButton">
<i class="icon-plus"></i> #{msg.add}
<f:setPropertyActionListener target="#{contactPersonController.itemEditable}" value="#{addable}"></f:setPropertyActionListener>
</h:commandLink>
我试过&#34;立即=真&#34;。它会跳过验证但不保留之前在(A)中提交的值。
有人说&#34; f:ajax&#34;但在这种情况下,我不知道如何申请。
答案 0 :(得分:0)
解决方案是使用&lt; f:param name =“skipValidation”...&gt;
<h:inputText id="customerName" styleClass=""
value="#{customerCreationController.customerDto.customerName}"
label="#{msg.customerName}" readonly="#{!customerCreationController.update and !customerCreationController.create}">
<f:validateRequired disabled="#{param.skipValidation}"/>
<f:validateLength maximum="#{shortStrLen}" disabled="#{param.skipValidation}"/>
</h:inputText>
<h:commandLink class="btn"
action="#{contactPersonController.add()}"
styleClass="btn pull-right plusButton">
<i class="icon-plus"></i> #{msg.add}
<f:param name="skipValidation" value="true"/>
<f:setPropertyActionListener target="#{contactPersonController.itemEditable}" value="#{addable}"></f:setPropertyActionListener>
</h:commandLink>