从JSF动作返回null和“”之间的区别

据我所知,当一个JSF操作返回"" (空string)用户停留在当前页面,但视图刷新。 但是,当操作返回null ,用户仍然停留在当前页面上,但旧视图将被重用。 我的问题是:

  1. 上述说法是否正确(准确)?
  2. 如果是的话,那么这有什么影响呢? 具体来说,在页面上的数据(例如,JSF UI组件中的值,或存储在DataTable中的请求范围bean中的数据)上使用一种方法与另一种方法会产生什么效果?
  3. 在什么情况下应该使用另一种?

上述说法是否正确(准确)?

是。 而不是返回null你也可以返回void


如果是的话,那么这有什么影响呢? 具体来说,在页面上的数据(例如,JSF UI组件中的值,或存储在DataTable中的请求范围bean中的数据)上使用一种方法与另一种方法会产生什么效果?

没有请求范围的豆。 它只对JSF2视图范围的bean有影响。 在返回nullvoid ,视图范围的bean实例将保留在下一个请求中,否则将被重新创build。


在什么情况下应该使用另一种?

如果要在后续请求中保留JSF2视图范围的bean。

也可以看看:

  • JSF 2.0中的通信 – 托pipe的bean作用域