针对popup页面只有关闭窗口时清session,画面之间的跳转不清session:
1.如果popup只能打开一个的话,可以在popup的父页面设置一个popup窗口的对象变量,通过设置一个计时器去检测这个变量是否是closed:
不过这种方法只是用打开一个窗口的,并且是一个应用的,否则在logoff这块就得发送一个到其他服务器上的请求,这时候如果出现网络等其他问题就会出现session没有清空的问题。
2.在action层设置标志位的方式,思路如下:
当每个form提交完进入action层时的开始处在session中设置一个不清session的标志位,等执行到mapping.finward这种将要触发页面跳转时将标志位设置成清session的状态;如果是第一次打开popup画面,因为此时标志位在session中还不存在,从session中获取标志位时会出异常,通过捕获该异常来设置是否跳转时将标志位设为清session的状态。当然对于ajax的操作就没有必要进行标志位的设置了。然后,在logoff的action操作中判断标志位是否是清的状态来进行清session操作。具体代码:
页面层:
action层:
清session操作的action中:
你可以把你在popup中需要在session中设置的属性封装到一个类中的map表里,设置和清session都可以通过该类来操作