在primefaces中,如何仅禁用表单验证?
在我的代码中,如果我添加immediate="true"
,它将跳过整个过程,应用请求值,进程验证和更新模型值阶段,但在我的情况下,我需要bean变量绑定来提交搜索表单。如果我删除此立即设置,它将不会提交此表单,因为orderNum是一个bean ID。
请参考这篇文章,PrimeFaces disable validation on cancel button
谢谢。
<h:form id="PurchaseOrderSearchForm">
<p:panelGrid columns="2" style="margin-top: 0px; width: 100%;">
<p:outputLabel value="OrderNum:" for="search_orderNum" />
<p:inputText id="search_orderNum" value="#{purchaseOrderController.searchPurchaseOrder.orderNum}" title="OrderNum" />
</p:panelGrid>
<div align="center" style="margin-top: 5px;">
<p:commandLink value="#{bundle.Search}" immediate="true" actionListener="#{purchaseOrderController.search}" update=":growl,:PurchaseOrderList:datalist"/>
</div>
</h:form>
您似乎将p:inputText
绑定到实体(PurchaseOrder)bean的字段。但是你说这是一个搜索表单,为什么你会这样做呢?您应该将它绑定到控制器中的简单非持久字段。你这里不需要immediate
。
<p:inputText id="search_orderNum" value="#{purchaseOrderController.searchQueryString}" />
然后在你的动作方法中,你可以用searchQueryString
值做任何你想做的事。