检查JSF中表单的部分验证错误

时间:2011-07-21 12:17:06

标签: jsf seam facelets

我正在构建一个Seam应用程序,它基本上是一个分为不同部分或模块的巨大形式。我需要一种方法来确定模块何时“完整”,这意味着该模块中字段的所有验证都会通过。然后我需要在视图中做一些事情,设置一个css类或其他什么。

类似的东西:

<a:region id="region1">
    <s:div styleClass="#{invalid ? 'errors' : ''}">
       <h:inputText required="true" id="input1" />
       <h:inputText required="true" id="input2" />
       <h:commandButton value="Save this section" reRender="region1" />
    </s:div>
</a:region>

我认为我有两个选择:

  • 使用某种视图逻辑(如单个字段的#{invalid})
  • 使用bean中的方法,我以编程方式获取模块的所有组件,并检查它们是否存在验证错误。

但是,我找不到任何方法可以做任何这些。任何想法,如果这是可能的?

我们正在使用带有Seam的JSF 1.2。

感谢。

1 个答案:

答案 0 :(得分:4)

您可以使用UIInput#isValid()检查特定输入组件上是否发生了验证错误。

<s:div styleClass="#{!input1.valid or !input2.valid ? 'errors' : ''}">
   <h:inputText binding="#{input1}" required="true" id="input1" />
   <h:inputText binding="#{input2}" required="true" id="input2" />
   <h:commandButton value="Save this section" reRender="region1" />
</s:div>