首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

最近遇到的一个关于session的有关问题

2012-12-21 
最近遇到的一个关于session的问题在项目中为了解决一个页面传参弹出框的问题,犹豫了好久,不知道该怎么高 ?

最近遇到的一个关于session的问题

在项目中为了解决一个页面传参弹出框的问题,犹豫了好久,不知道该怎么高 ?

? 我要从一个action重定向到另外一个action中,要带一个参数过去,struts2的配置如:

???

<action name="before" type="redirect">to.action?flag=${flag}</result></action>
<action name="to" >result.jsp</result></action>?

?

?

?这样确实能解决我带参数过去的问题,但是新的问题又出现了,如果用户一直刷新页面的话,那我的弹框就一直会弹出,所以为了解决问题,我看了struts2 的result type ,chain 不适合。因此不让参数显示在URL中,但同时又可以弹出框,于是我考虑了两种方法。

?? 1.利用session ,把标记放到session中,在另外一个中获取到,代码:

???

写道Map<String,Integer> session = ActionContext.getContext().getSession() ;
session.put("flag", 1) ;






Map<String ,Integer> session = ActionContext.getContext().getSession() ;
if(null != session && session.containsKey("flag") ) {
flag = (int)session.get("flag") ;
session.clear() ;
}

?

?

??? 我写的小例子调试OK,但是在我的项目工程中,却怎么也拿不到我塞进去的值,查看工程源码是因为, 认证拦截器中有这么ActionContext.getContext().getSession().clear(); 一句话,只允许把用户信息放到session中去。

此路不通。

?

2.考虑用静态变量,虽然是2个action共享到数据了,但是当多用户,多并发的时候,由于是公用一个变量,会出现脏数据的情况。此路又不同。

?

最终,还是用最原始的方法,在弹出框以后用js做个重定向,这样子就OK了!!!

?

?

?

总结:1.不要去为了解决一些小问题,而去添加与业务逻辑的无关的后台代码,走一些比较偏的方法,可以寻求比较通用并普遍的解决方案。

???????? 2,有时候经验确实会帮助开发解决很多问题,遇到问题可以寻求老员工的帮助,你会有不少收获

???????? 3,做的越多,错的越多,思考的越多,成长的也越多

热点排行