当初始化带有值的变量来自 session 时,我收到错误。 我的程序是这样的:
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..
如果我采用这样的 session 值:
public void doInit(Page arg0, Map arg1) throws Exception {
user=(Rusers) session.getAttribute("user");
System.out.println("user Id="+user);
}
该值也为空..
iam 像这样设置 session :
session.setAttribute("user", user);
有人可以帮助我吗?我很困惑,因为如果我在空初始化后点击操作并打印出结果,例如:
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");
}
}
该值是显示,不再为空..但是如果我初始化该变量,该值为空..有人可以帮助我吗?
感谢您的关注,抱歉我的英语不好..
最佳答案
我的问题得到了答复,我想分享也许有人和我遇到同样的问题,只需更改获取 session 对象的方式,如下所示:
public void doInit(Page arg0, Map arg1) throws Exception {
session=Executions.getCurrent().getSession();
user=(user) session.getAttribute("user");
System.out.println("user Id="+user);
}
该值不再为空..这是获取 session 对象的正确方法..感谢您的关注..
关于java - ZK中使用Session中的值初始化变量?为什么总是得到空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291907/