跳过验证但仍保留提交的值

时间:2015-03-13 04:54:55

标签: jsf

我有这个屏幕策略。客户和联系人是一对多的关系。当用户点击"创建联系人"时,我想跳过(A)," Save"之后的验证。联系人,应保留(A)中的输入值。

例如:

  • 输入客户名称" John"
  • 点击"创建联系人",输入联系人
  • "保存&#34 ;. "约翰"应该再次出现

"创建"按钮:

<h:commandLink class="btn"
    action="#{contactPersonController.add()}"
    styleClass="btn pull-right plusButton">
    <i class="icon-plus"></i>&#160;#{msg.add}
    <f:setPropertyActionListener target="#{contactPersonController.itemEditable}" value="#{addable}"></f:setPropertyActionListener>
</h:commandLink>
  • 我试过&#34;立即=真&#34;。它会跳过验证但不保留之前在(A)中提交的值。

  • 有人说&#34; f:ajax&#34;但在这种情况下,我不知道如何申请。

enter image description here

1 个答案:

答案 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>&#160;#{msg.add}
    <f:param name="skipValidation" value="true"/>
    <f:setPropertyActionListener target="#{contactPersonController.itemEditable}" value="#{addable}"></f:setPropertyActionListener>
</h:commandLink>

参考:Skip validation conditionally JSF