在Wicket自定义Application里面的Session

xiaoxiao2022-06-24  23

Wicket提供一个WebSession类,我们只需要继承WebSession,就可以写我们的Session类。

举例说明:

现在我编写一个MySession类:

public class MySession extends WebSession{

       private String message;

      

    public MySession(Request request){

        super(request);

    }

    public static MySession session(){

              return (MySession)Session.get();

}

    public String get Message () {

        return this.message;

    }

    public void setMessage(String message) {

        this. message = message;

  }

}

这个类需要注意的地方:

1.         构造方法必须传递一个Request对象。

2.         使用Sessionget方法获取这个Session的实例,该实例由容器管理。

3.         在这个类里面定义你想放到Session的变量。

接着,需要覆盖WebApplication里面的newSession方法:

    @Override

    public MySession newSession(Request request, Response response) {

        return new MySession(request);

}

我们这里可以看到,Application会自动给MySession添上Request对象。

注意,WicketSession是由WicketApplication绑定的,因此MySession只会存活在这个WebApplication里面。

好了,最后我们调用下MySession吧:

        //设置wicketsession/

        MySession mySession = (MySession) super.getSession();

        mySession.session().setMessage("这里测试wicketSession功能!!!!");

        //获取wicketsession/

        MySession mySession = (MySession) super.getSession();

        String message = mySession.session().getMessage();

转载请注明原文地址: https://www.6miu.com/read-4955315.html

最新回复(0)