Jsf 2 当URL中没有参数时,将f:viewParam属性设置为null

Jsf 2 当URL中没有参数时,将f:viewParam属性设置为null,jsf-2,viewparams,Jsf 2,Viewparams,假设我们得到了一个接受一个参数的简单页面: <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。如何做到这

假设我们得到了一个接受一个参数的简单页面:

<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
。如何做到这一点?

对所保存的数据使用正确的托管bean范围。您显然已将其放入会话范围。将包含参数的bean放在请求或视图范围中,而不是会话范围中,并且在使用视图范围时,确保在执行操作时通过普通链接或post重定向get进行导航

另见:

是的,它是会话范围,应该是,因为它包含用户首选项。我只想在param包含此属性时设置bean属性,否则为NULL。我的想法是使用preRenderView listener并手动检查此参数并设置null。