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. 使用Session的get方法获取这个Session的实例,该实例由容器管理。
3. 在这个类里面定义你想放到Session的变量。
接着,需要覆盖WebApplication里面的newSession方法:
@Override
public MySession newSession(Request request, Response response) {
return new MySession(request);
}
我们这里可以看到,Application会自动给MySession添上Request对象。
注意,Wicket的Session是由Wicket的Application绑定的,因此MySession只会存活在这个WebApplication里面。
好了,最后我们调用下MySession吧:
//////////设置wicket的session值/////////
MySession mySession = (MySession) super.getSession();
mySession.session().setMessage("这里测试wicket的Session功能!!!!");
//////////获取wicket的session值/////////
MySession mySession = (MySession) super.getSession();
String message = mySession.session().getMessage();