当 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的主要内容,如果未能解决你的问题,请参考以下文章

当 HTTP-POST 有 body 时,url 参数为空

在 URL Rails Routes 中添加 Hash 参数

获取 PHP 中的 URL 参数

SpringMVC 中,当前台传入多个参数时,可将参数封装成一个bean类

Spring MVC 重定向在 url 中添加了一些参数

Jquery函数返回url参数[重复]