【发布时间】:2014-02-19 23:28:00
【问题描述】:
我有一个复杂的页面,其中包含 p:commanButton 和 actionListener 和 immediate="true"
单击此命令按钮后,我需要处理单个 inputField(从而跳过表单的其余部分)。问题是,inputField 有一个验证器,我只想在整页提交中使用它。
<p:inputText id="#{cc.attr.id2}_input" value="#{myBB.value}"
immediate="true">
<f:validateLength minimum="4"/>
</p:inputText>
<p:commandButton id="#{cc.attr.id2}_search" immediate="true"
process="#{cc.attr.id2}_input @this"
actionListener="#{myBB.listener}">
</p:commandButton>
当我使用 inputText 中的 3 个字母执行此操作时,由于验证失败,myBB.value 不会更新。所以我想禁用 inputField 的验证器,以便 commandButton 立即处理。但我不知道怎么做。
我知道我可以从ExternalContext 获得价值,但这对我来说似乎是一个非常老套的解决方案(在我的情况下甚至不适用,因为它在复合组件内部,我无法知道 clientId的文本字段。)
我也知道validator 标签的disabled 属性,但我不知道如何在这种情况下使用它。
编辑:我稍微更改了代码,因为我使用的 ID 实际上并不像我最初所说的那么简单,并且不允许我使用简单的建议解决方案。
我使用 Mojarra 2.2.4 和 Primefaces 4.0
【问题讨论】:
标签: validation jsf primefaces