Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回null和“返回”之间的差异&引用;来自JSF操作_Java_Jsf_Navigation - Fatal编程技术网

Java 返回null和“返回”之间的差异&引用;来自JSF操作

Java 返回null和“返回”之间的差异&引用;来自JSF操作,java,jsf,navigation,Java,Jsf,Navigation,据我所知,当JSF操作返回”(空字符串)时,用户将停留在当前页面上,但视图将刷新。但是,当操作返回null时,用户仍停留在当前页面上,但旧视图被重用。我的问题是: 上述陈述正确(准确)吗 如果是,那么这意味着什么?具体来说,使用一种方法与使用另一种方法对页面上的数据(例如,JSF UI组件中的值或存储在DataTable中的请求范围bean中的数据)有什么影响 在什么情况下应该使用一个而不是另一个 上述陈述正确(准确)吗 对。您也可以只返回void,而不是返回null 如果是,那么这意味着什么

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

  • 上述陈述正确(准确)吗
  • 如果是,那么这意味着什么?具体来说,使用一种方法与使用另一种方法对页面上的数据(例如,JSF UI组件中的值或存储在DataTable中的请求范围bean中的数据)有什么影响
  • 在什么情况下应该使用一个而不是另一个
  • 上述陈述正确(准确)吗

    对。您也可以只返回
    void
    ,而不是返回
    null


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

    请求范围的bean上没有任何内容。它只对JSF2视图范围的bean有效。返回
    null
    void
    时,视图范围的bean实例将保留在下一个请求中,否则将重新创建它


    在什么情况下应该使用一个而不是另一个

    如果希望在后续请求中保留JSF2视图范围bean

    另见:

    因此,如果我使用的是JSF 1.2,而没有视图范围,那么可以肯定地说,两者之间没有什么区别?从功能上说,没有。但从技术上讲,您自己已经发现了这一区别。创建新视图的成本很小。只要在回发到同一视图时始终返回
    null
    void
    。仅供参考:JSF2规范中的应用程序操作具有以下约束:1。方法必须是公共的。2.该方法不能采用任何参数。3.该方法必须返回对象。我记得,如果您试图使用
    void
    返回类型,但记不清是哪个供应商/版本,至少有一个导航API实现崩溃。@McDowell:实际上,任何可以用a表示的都是一种法律行动方法,即使是在EL 2.2中尽可能使用参数的方法。该规范引用可能是JSF1.0的遗留问题。这是在处理规范中包含的响应值方面的差异,还是仅仅是实现的问题?