Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 如何创建共享/实用程序支持bean?_Java_Jsf_Jakarta Ee_Jsf 2_Backing Beans - Fatal编程技术网

Java 如何创建共享/实用程序支持bean?

Java 如何创建共享/实用程序支持bean?,java,jsf,jakarta-ee,jsf-2,backing-beans,Java,Jsf,Jakarta Ee,Jsf 2,Backing Beans,我有几个页面共享页面的特定部分,比如一组复选框,显示所有能够在这些用户中搜索的用户,因此我考虑在facelet中对UI部分进行分组,以便将其包含在其他页面中,对于服务器端部分,我正在考虑创建一个sessionScoped bean,其中包含该页面的方法和属性,您对这种方法有何看法?请告知,谢谢 更新:有一个重要的问题,那就是我应该使bean中的方法同步,以便它为不同的请求返回不同的值,我的意思是不为不同的请求返回相同的结果 是的,听起来不错,只要不太重,你可以把这些东西放在会话范围内 使用请求范

我有几个页面共享页面的特定部分,比如一组复选框,显示所有能够在这些用户中搜索的用户,因此我考虑在facelet中对UI部分进行分组,以便将其包含在其他页面中,对于服务器端部分,我正在考虑创建一个sessionScoped bean,其中包含该页面的方法和属性,您对这种方法有何看法?请告知,谢谢


更新:有一个重要的问题,那就是我应该使bean中的方法同步,以便它为不同的请求返回不同的值,我的意思是不为不同的请求返回相同的结果

是的,听起来不错,只要不太重,你可以把这些东西放在会话范围内


使用请求范围的bean而不是会话范围的bean。对这些事情使用延迟加载模式。在其他bean中分离公共资源是一个很好的解决方案

class CommonsBean {
    private List<User> users;

    public List<User> getUsers() {
      if (users == null) {
          users = // here some code to load it from DB
      }
      return users;
    }

}
classcommonsbean{
私人名单用户;
公共列表getUsers(){
如果(用户==null){
users=//这里有一些从数据库加载的代码
}
返回用户;
}
}

如果太重,应该是应用范围还是什么?我的想法是制作一个实用程序bean,它将包含UI之间常用的方法。不,如果数据太多,你应该把它们放在请求中,但我不认为复选框(绑定数据)很重要,不要为这些事情使用会话或应用程序范围。使用请求范围和缓存系统,如EHCache。这与沉重无关。这只是一个糟糕的设计。在任何情况下,它都不应该在应用程序范围内,因为您必须根据请求->会话进行区分,还需要维护生命周期,@peprerg如果我们需要从每个页面获取用户输入,这将有何帮助。