我有一个带有输入字段的h:表单,标记为必填字段。我想注册一个事件处理程序,它可以检查是否满足'强制'标准(如果是:没有更改,如果没有:将组件的背景颜色为红色)。
我还没有找到,为这个用例制作了哪个事件处理程序。我已经尝试过javax.faces.event.PreValidateEvent,如果这是一个验证问题,它应该可以完成。据我所知JSF生命周期,当强制字段不符合其标准时(从而立即重新呈现视图),永远不会调用验证。
感谢您找到正确的选择!
答案 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
中找到一个示例。