Init变量带有ZK中Session的值?为什么总是得到null值?

时间:2011-06-09 11:15:45

标签: java web-applications zk

当带有值的initilize变量来自会话时,我收到错误。 我的程序是这样的:

public class OTPController extends GenericForwardComposer implements Initiator{
    private String valueOTP;
    private Rusers user;
    public void doInit(Page arg0, Map arg1) throws Exception {
            user=(Rusers) arg1.get("user");
            System.out.println("user Id="+user);
    }

当我在init中打印输出值时,该值为null ..

如果我采用这样的会话值:

    public void doInit(Page arg0, Map arg1) throws Exception {
            user=(Rusers) session.getAttribute("user");
            System.out.println("user Id="+user);
    }

该值也是null ..

iam将会话设置为:

session.setAttribute("user", user);

任何人都可以帮助我吗?我非常困惑,因为如果我在null初始化后点击动作并打印结果例如:

public void onClick$evaluate(Event event){
        String key=(String) session.getAttribute("key");
        if(valueOTP.equals(key)){ 
            System.out.println("user Id="+user);
            session.invalidate();
            session.setAttribute("user", user);
            execution.sendRedirect("./Welcome.zul");
        }else{
            System.out.println("OTP Failed");
            execution.sendRedirect("./Login.zul");
        }
    }

值显示,不再为null ..但如果我初始化变量,则值为null ..任何人都可以帮助我吗?

感谢您的关注,并为我糟糕的英语感到抱歉..

1 个答案:

答案 0 :(得分:0)

我的问题得到了解答,我想分享一下,也许有人和我有同样的问题,只需改变你获得会话对象的方式,就像这样:

public void doInit(Page arg0, Map arg1) throws Exception {
            session=Executions.getCurrent().getSession();
            user=(user) session.getAttribute("user");
            System.out.println("user Id="+user);
    }

该值不再为null ..这是获取会话对象的正确方法..感谢您的注意..