真正的问题:有没有办法在初始页面加载时清除所有组件的某些属性?
背景资料:
在我的应用程序中,我有一个与服务层通信的 JSF 2.0 前端层(服务层由注入托管 bean 的 Spring bean 组成)。
服务层进行自己的验证,我在前端层使用自己的验证器类进行相同的验证,以尝试以某种方式避免代码重复。这些验证器类不是 JSF 验证器,它们只是 POJO。
我只是对一个动作进行验证,所以在动作方法中,我执行验证,只有当它有效时,我才会调用服务层。
当我进行验证时,我使用反射在 UIComponents 上设置 styleClass 和标题(因此,如果 UIComponent 具有 setStyleClass(:String) 或 setTitle(:String) 方法,那么我将使用它们)。
这很好用,并且在验证错误时,如果我将鼠标悬停在它上面,我会看到一个样式精美的文本框,其中包含包含错误消息的弹出窗口。但是,由于组件绑定到 Session Scoped Managed Bean,这些属性似乎仍然存在。因此,如果我离开并返回同一页面,styleClass 和 title 仍处于错误状态。
有没有办法在每个初始页面加载时清除 styleClass 和 title 属性?
谢谢,
詹姆士
PS我正在使用action方法进行验证,因为我之前在JSF 1.2中遇到了一些问题,它是验证方法,但不记得为什么......所以这就是我使用action方法进行验证的原因。