当 URL 中没有参数时,将 f:viewParam 属性设置为 null
Posted
技术标签:
【中文标题】当 URL 中没有参数时,将 f:viewParam 属性设置为 null【英文标题】:Set f:viewParam property to null when there is no parameter in URL 【发布时间】:2012-05-20 01:57:17 【问题描述】:假设我们有一个接受一个参数的简单页面:
<f:viewParam name="name" value="#bean.name"/>
当用户转到http://localhost/myapp/?name=Joe
时,#bean.name
被设置为Joe
。
然后如果用户转到http://localhost/myapp/
或http://localhost/myapp/?something=Else
,那么#bean.name
仍然设置为Joe
,但我希望它是null
。如何做到这一点?
【问题讨论】:
【参考方案1】:为它保存的数据使用正确的托管 bean 范围。您显然已将其放在会话范围内。将持有参数的 bean 放在请求或视图范围而不是会话范围中,并且在使用视图范围时,请确保在执行操作时通过普通链接或后重定向获取导航。
另见:
How to choose the right bean scope?【讨论】:
是的,它是会话范围的,应该是,因为它包含用户偏好。我只想在 param 包含此属性时设置 bean 属性,否则为 NULL。我的想法是使用 preRenderView 侦听器并手动检查此参数并将其设置为 null。以上是关于当 URL 中没有参数时,将 f:viewParam 属性设置为 null的主要内容,如果未能解决你的问题,请参考以下文章
在 URL Rails Routes 中添加 Hash 参数