哪个JSF事件处理程序用于视图中依赖于内容的更改?

时间:2011-06-20 08:05:40

标签: jsf event-handling jsf-2

我有一个带有输入字段的h:表单,标记为必填字段。我想注册一个事件处理程序,它可以检查是否满足'强制'标准(如果是:没有更改,如果没有:将组件的背景颜色为红色)。

我还没有找到,为这个用例制作了哪个事件处理程序。我已经尝试过javax.faces.event.PreValidateEvent,如果这是一个验证问题,它应该可以完成。据我所知JSF生命周期,当强制字段不符合其标准时(从而立即重新呈现视图),永远不会调用验证。

感谢您找到正确的选择!

1 个答案:

答案 0 :(得分:1)

  

我想注册一个事件处理程序,它可以检查是否满足'强制'标准(如果是:没有更改,如果没有:将组件的背景颜色为红色)

是否可以检查组件是否有效,无论使用何种转换/验证?

<h:inputText value="#{bean.input}" required="true" 
    styleClass="#{component.valid ? 'none' : 'error'}" />

(输入组件中的EL #{component}引用引用组件本身的UIInput实例,此类又具有isValid()方法,这就是它工作的原因那样)

定义CSS如下

input.error {
    background: #fee;
}

如果没有,或者你想要一个更通用的解决方案,(或者如果你使用的JSF 1.x不支持#{component}),那么你也可以考虑使用{{3} }。您可以在PhaseListener中找到一个示例。