哪个JSF事件处理程序用于视图上的内容相关更改



我有一个h:form,其输入字段标记为必填字段。我想注册一个事件处理程序,它可以在检查是否满足"强制性"标准时采取行动(如果是:没有更改,如果否:将组件的背景涂成红色)。

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

感谢您找到正确的选择!

我想注册一个事件处理程序,它可以在检查是否满足"强制性"标准时采取行动(如果是:没有更改,如果否:将组件的背景涂成红色)

不管使用什么转换/验证,只检查组件是否有效也可以吗?

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

(输入组件内部的EL #{component}引用指的是组件本身的UIInput实例,这个类又有一个isValid()方法,这就是它以这种方式工作的原因)

并按照定义CSS

input.error {
    background: #fee;
}

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

相关内容

  • 没有找到相关文章

最新更新