Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
在jsf和javabean中维护会话_Java_Jsf - Fatal编程技术网

在jsf和javabean中维护会话

在jsf和javabean中维护会话,java,jsf,Java,Jsf,我不熟悉JSF和beans,我需要从DB(oracle)获取一些数据并在控制台上显示。我的第一个bean将从JSF读取数据,并在第二个bean中调用适当的方法,包含数据的列表将被发送回该bean。再次基于该数据,将调用第二个bean中的另一个方法来获取额外的数据。最后,数据将发布给用户。我的第二个bean将负责数据库连接。这是我的密码。 第一粒豆子 String ban = null,ban1 = null; masterlist = (ArrayList<ThreadDTO>)

我不熟悉JSF和beans,我需要从DB(oracle)获取一些数据并在控制台上显示。我的第一个bean将从JSF读取数据,并在第二个bean中调用适当的方法,包含数据的列表将被发送回该bean。再次基于该数据,将调用第二个bean中的另一个方法来获取额外的数据。最后,数据将发布给用户。我的第二个bean将负责数据库连接。这是我的密码。 第一粒豆子

 String ban = null,ban1 = null;
 masterlist = (ArrayList<ThreadDTO>) getMbd().getBanOrCtn(dbean);
 if (masterlist.isEmpty()) {
     setSuccess(2);
     return;
    } else {
    Iterator<ThreadDTO> itr = masterlist.iterator();
       while (itr.hasNext()) {
       ThreadDTO dto = (ThreadDTO) itr.next();
       ban1 = dto.getWireless_ban();
       if (ban1 != null) {
       ban = ban1;
       break;
       }
     }

    ctnThreadList = (ArrayList<ThreadDTO>) getMbd().getThreads(dbean);
    dbean.setSearchby("wireless_ban");
    dbean.setSearchValue(ban);
    banThreadList = (ArrayList<ThreadDTO>) getMbd().getThreads(dbean);
    masterlist.clear();
    masterlist = (ArrayList<ThreadDTO>) getMbd().removeDuplicates(    ctnThreadList, banThreadList);
    setResultlist((ArrayList<ThreadDTO>) getMbd().getApis(masterlist));

    }
字符串ban=null,ban1=null;
主列表=(ArrayList)getMbd().getBanOrCtn(dbean);
if(masterlist.isEmpty()){
设置成功(2);
返回;
}否则{
迭代器itr=masterlist.Iterator();
while(itr.hasNext()){
ThreadDTO dto=(ThreadDTO)itr.next();
ban1=dto.getWireless_-ban();
if(ban1!=null){
ban=ban1;
打破
}
}
ctnThreadList=(ArrayList)getMbd().getThreads(dbean);
dbean.setSearchby(“无线禁令”);
dbean.setSearchValue(ban);
banThreadList=(ArrayList)getMbd().getThreads(dbean);
masterlist.clear();
masterlist=(ArrayList)getMbd().removeDuplicates(ctnThreadList,banThreadList);
setResultlist((ArrayList)getMbd().getAPI(主列表));
}
第二个豆子是

public ArrayList<ThreadDTO> getBanOrCtn(SearchDetailsDTO db) throws Exception {
    ArrayList<ThreadDTO> threadlist1 = new ArrayList<>();

   //query here

    try {
    connection = getConnections(timeZone);//getting connection
            stmt = connection.createStatement();
            rs = stmt.executeQuery(banQuery);

        if (!rs.isBeforeFirst()) {
            System.out.println("empty resultset");
            stmt.close();
            rs.close();
            connection.close();

        } else {               
                while (rs.next()) {
                ThreadDTO thread = new ThreadDTO();

                //code to set the values

                break;
            }
        }
    } catch (SQLException sql) {
        addErrorMessage(sql.getMessage());
    }
    return threadlist;
}
public ArrayList getBanOrCtn(SearchDetailsDTO db)引发异常{
ArrayList threadlist1=新的ArrayList();
//在此查询
试一试{
connection=getConnections(时区);//获取连接
stmt=connection.createStatement();
rs=stmt.executeQuery(banQuery);
如果(!rs.isBeforeFirst()){
System.out.println(“空结果集”);
stmt.close();
rs.close();
connection.close();
}否则{
while(rs.next()){
ThreadDTO thread=新ThreadDTO();
//设置值的代码
打破
}
}
}捕获(SQLException sql){
addErrorMessage(sql.getMessage());
}
返回线程列表;
}

这可能不是一个好的编码实践,但是这对于单个用户来说很好,但是我的要求是多个用户可以访问。有谁能告诉我如何才能做到这一点。提前感谢。

如果您需要在两个bean之间的作用域会话下维护数据,我建议您注入托管bean。您可以通过使用@ManagedProperty在不同的bean中注释bean来实现这一点。然后您就可以轻松地访问这个bean的方法。在这里你可以找到更多,以及一个例子

大卫,谢谢你的快速回复。我仍在获取ExhustedResultSet和Closed ResultSet错误。但这必须通过会话来区分,对吗?请让我知道如何克服这个错误。