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 ..任何人都可以帮助我吗?
感谢您的关注,并为我糟糕的英语感到抱歉..
答案 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 ..这是获取会话对象的正确方法..感谢您的注意..