Jsf 托管bean属性在另一个请求中变为null

Jsf 托管bean属性在另一个请求中变为null,jsf,Jsf,使用new ArrayList()初始化列表时遇到问题。这是我的班级:- @ManagedBean(name = "clientBean") @SessionScoped public class ClientBean { public String msg = "", input, pendingMsg = "", user = ""; public GossipClient client; public boolean inputDisabled = true, s

使用
new ArrayList()
初始化列表时遇到问题。这是我的班级:-

@ManagedBean(name = "clientBean")
@SessionScoped
public class ClientBean {

    public String msg = "", input, pendingMsg = "", user = "";
    public GossipClient client;
    public boolean inputDisabled = true, sendBtnDisabled = true, startBtnDisabled = false;
    String key = null;
    public List<ClientBeanDto> dtos;
    ClientBeanDto dto;
    String style;
    public List<OnlineList> onlineList;
    OnlineList userInfo;
    OnlineList newUser = null;

    public void start() throws UnknownHostException, IOException {
        client = new GossipClient(this);
        if (user != null && user != "" && client.connect()) {
            try {
                BufferedReader reader = new BufferedReader(new FileReader("D://key.txt"));
                key = reader.readLine();
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            client.start();
            inputDisabled = sendBtnDisabled = false;
            startBtnDisabled = true;
            msg = pendingMsg = "";
            pendingMsg = user + ", you are connected!";
            client.sendNick(key + user);
            onlineList = new ArrayList<OnlineList>();
            dtos = new ArrayList<ClientBeanDto>();
        }
        .
        .
        .
    }
@ManagedBean(name=“clientBean”)
@会议范围
公共类ClientBean{
公共字符串msg=“”,输入,pendingMsg=“”,用户=“”;
公共客户机;
public boolean inputDisabled=true,sendBtnDisabled=true,startBtnDisabled=false;
字符串键=null;
公开名单DTO;
客户与dto;
弦乐风格;
公开名单;
在线用户信息;
OnlineList newUser=null;
public void start()引发UnknownHostException,IOException{
客户机=新客户机(此);
if(user!=null&&user!=“&&client.connect()){
试一试{
BufferedReader=new BufferedReader(新文件阅读器(“D://key.txt”);
key=reader.readLine();
reader.close();
}捕获(例外e){
e、 printStackTrace();
}
client.start();
inputDisabled=sendBtnDisabled=false;
startBtnDisabled=真;
msg=pendingsg=“”;
pendingMsg=user+“,您已连接!”;
client.sendNick(key+user);
onlineList=新的ArrayList();
dtos=新的ArrayList();
}
.
.
.
}
问题在于
public List onlineList
。在
start()
方法中,当执行行
onlineList=new ArrayList();
时,在调试模式下,我发现它的值为null,而下一行中的类似对象
dtos
被初始化并成功分配了一个id。 我似乎找不到这种行为的任何原因,我没有得到任何错误/例外。任何智慧都将受到赞赏


更新:发现每当单击xhtml按钮(bean支持的按钮)时,
列表将变为空。但我找不到原因。bean将进行会话处理,而另一个列表(
dtos
)对象将保留。

用户!=“
始终为真。使用
!user.equals(“”)
!user.isEmpty()
instead@Bohemian我正在初始化
user=“”
;此外,这只是初稿,我只考虑预期用户操作的功能,稍后将处理更精细的细节;这不是这里的问题,您依赖字符串插入,它可以工作,但如果您从其他地方传入一个空白,则无法按预期工作。不要初始化用户并删除该测试