忽略自定义验证,但不是必需的=" true"取决于按下的按钮

时间:2015-05-19 09:19:36

标签: forms validation jsf commandbutton

我正在使用JSF,我想验证表单。 在表单中是一个由if (window.isDevice) { window.requestFileSystem(window.PERSISTENT, 512, onInitFs, errorHandler); } else { callback(fc); } 验证的文本字段和验证方法。

required="true"

要提交表单,我有两个按钮。单击第一个时,应仅验证该字段是否为空。到第二个时,应该另外调用自定义验证。 这可能吗?

1 个答案:

答案 0 :(得分:3)

首先将该验证方法转换为真正的Validator实现。

@FacesValidator("topicValidator")
public TopicValidator implements Validator {}

然后,您可以在支持disabled属性的<f:validator>中使用它。

<h:inputText ...>
    <f:validator validatorId="topicValidator" disabled="..." />
</h:inputText>

要检查是否按下某个按钮,只需在请求参数映射中检查其客户端ID是否存在。

<h:inputText ...>
    <f:validator validatorId="topicValidator" disabled="#{empty param[secondButton.clientId]}" />
</h:inputText>
...
<h:commandButton binding="#{secondButton}" ... />

注意:绝对不要将它绑定到bean属性!上面的代码是原样的。您应该只保证EL变量#{secondButton}在当前视图中是唯一的,而不是由另一个组件甚至是托管bean共享。

另见: