防止在h:form中提交p:selectOneListbox

时间:2014-09-30 13:21:02

标签: jsf jsf-2 primefaces

我需要跳过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;

1 个答案:

答案 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。这就是你的模型被打破的强烈暗示 - 即使你从未打算更新模型,它仍然可以在链中的其他地方产生影响。