我有一个视图范围bean,通过f:viewparam接收参数,并使用它们在模型中设置值。页面回发后,参数将从url中删除,但是由初始参数设置的模型值将被保留。
这是保存参数的一种安全方法,还是应该在回发时重写url,以便它保留初始参数的后续调用?
如何保留参数?在视图状态下?
发布于 2014-01-13 22:17:19
下面是F:观文档中的内容:
..。此标记将导致将UIViewParameter作为当前视图的元数据附加。因为UIViewParameter扩展了UIInput,所以任何UIInput标记的所有属性和嵌套子内容都在这个标记上有效。
这意味着<f:viewParam>
value
属性将使用request参数更新,该参数存储在viewstate中,并在再次提交页面时重新设置/重新验证。
Arjan Tijms有一个完整的故事:http://arjan-tijms.omnifaces.org/2011/07/stateless-vs-stateful-jsf-view.html
简而言之:使用@ViewScoped
bean是非常好的,但是如果您在该值上使用了昂贵的验证器/转换器,请注意它将在该页面的每次回发中再次调用。如果您想避免这种情况,请查看来自BalusC的BalusC,它解释了O:查看,OmniFaces的无状态选择。
https://stackoverflow.com/questions/21098126
复制相似问题