[英]JSF - Clearing values in managed beans in session scope
我有一些menulinks,每个都与一个会话bean相关联。 由于bean在会话中,因此当我在不同菜单链接之间移动时,将保留这些值。 例如,假设有2个菜单链接-客户资料和帐户详细信息。 在客户资料中,可以通过输入名字和姓氏来搜索客户的详细信息。 在“帐户详细信息”页面中,可以通过输入客户帐号来获取客户帐户的详细信息。 在这种情况下,当用户输入无效的帐号时,将显示验证错误,并且用户输入的客户帐号将保留在屏幕上。 当用户导航到客户配置文件链接并返回到帐户详细信息屏幕时,先前输入的帐号将显示为会话范围。
处理这个问题的最佳方法是什么?
PhaseListener
beforePhase
中使用一些代码,以便在用户导航到其他菜单链接时从会话中删除bean吗? 是否有最佳实践来处理这种情况?
您不应该在会话范围bean中存储请求或查看范围数据。 将bean放在请求或视图范围中。 新的JSF2视图范围可以在JSF1中使用RichFaces通过添加<a4j:keepAlive>
将请求范围的bean引用到视图来实现。
我们使用选项2,即当我们单击相应的链接时,托管bean被“重置”。
但是,您可能希望查看Seam Faces,因为它引入了一些可能提供所需内容的范围(例如,会话范围)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.