我需要跳过h:form
内的输入组件进行处理/提交,因为它只保留在那里以满足纯粹的表达需求。不向任何bean字段提交值。在提交表单时如何禁用其提交以及其他表单输入?
<h:form>
<!--other input components-->
<p:selectOneListbox id="deptsSel">
<f:selectItems value="#{listRetriever.list}"
var="dept" itemLabel="#{namesDirectory.getName(dept)}" itemValue="#{dept}" />
</p:selectOneListbox>
<!--other input components-->
</h:form>
我省略了p:selectOneListbox
的值属性,但在提交表单时仍会出现验证错误:&#34; deptsSel: Validation Error: Value is not valid
&#34;
答案 0 :(得分:1)
在postback期间禁用它,只要它不是rendering the response。
<p:selectOneListbox ... disabled="#{facesContext.postback and facesContext.currentPhaseId.ordinal ne 6}">
作为JSF防范被黑客入侵请求的一部分,在{JSF生命周期的所有阶段(包括验证阶段)处理请求期间,也会遵守UIInput
组件的disabled
属性。
无关,您是否有兴趣知道何时以及为何会发生特定的验证错误,请前往Validation Error: Value is not valid。这就是你的模型被打破的强烈暗示 - 即使你从未打算更新模型,它仍然可以在链中的其他地方产生影响。