struts2中我想把结果放入到session中ActionContext.getContext().getSession()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中我想把结果放入到session中ActionContext.getContext().getSession()相关的知识,希望对你有一定的参考价值。
用这句话 ActionContext.getContext().getSession().put("result",result),报错因为给出的方法是put(arg0, arg1)而且我也没有看到有setAttribue("","")的方法,是因为我有包没有导入吗?我只看到有一个put(object arg0,objetct arg1)这个方法
很多初学Java Web的同学因为使用 Strut2框架而分不清两个 Session的区别。
1. JSP/Servlety有个原生的 session 对象,这是9大内置对象中的一个,书上写的都有,都记得。类型是 HttpSession session; 函数方法是 setAttribute(),getAttribute(),用法如下
// java// 保存到 原生session
ServletActionContext.getRequest().getSession().setAttribute("myStr",myStr);
// jsp
用struts标签: <s:property value="#session.myStr" />
用EL表达式:$sessionScope.myStr
用JSP代码:<%=session.getAttribute("myStr")%>
2. 若是项目使用了Struts2框架,Struts2自己也封装了个 session,这个 session是个 Map类型的对象。所以和 Map 用法一样的,使用 put 存值,get 取值。用法是:
// java// 保存到struts2 session
ActionContext.getContext().getSession().put("user", user);
// jsp
用struts标签: <s:property value="#session.user" />
用EL表达式:$hello
用JSP代码:<%=session.getAttribute("user")%>
在项目中,如果使用了 Struts2 框架,最好 Java 和 JSP 文件中都保持使用 Struts2 的 Session,因为原生 session 在一些不是用户调起的Action中可能无法正常获取值(因为原生Session依赖request请求,如Action之间跳转可能就没有request请求),而Struts2 Session则没有这个问题。
这个问题,可在Action内 使用 Stust2 Session 保存一个变量,紧跟着,使用原生的
ServletActionContext.getRequest().getSession().getAttribute 就无法获取到值。
如果有误,欢迎指出 。
使用上面的代码,注意import 相应的类库。
参考技术A 你上面的那句话分开写就是。ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
session.put("result",result);
这样看你懂了吗,你取得的getSession()的类型是Map型的。所以只有put()方法。没有setAttribue();只有在jsp页面中取的时候才用到getAttribue("result"):同样的,application也是一样的。都是map类型的。本回答被提问者和网友采纳 参考技术B struts2中的session是一个Map,这个map种保存的是session对象,如果你需要须取得session,需要实现,SessionAware接口,他有一个未实现的方法
action中声明,private Map session;
public void setSession(Map arg0)
this.session = arg0;
参考技术C 之所以没有setAttribue这个方法是因为你使用的session不是原生的Httpservlet session而是struts自己封装过的一个Map类型的session
你可以使用这个得到原生的session对象
ServletActionContext.getRequest().getSession().setAttribute(arg0, arg1); 参考技术D ServletActionContext.getRequest().getSession(),通过这种方法拿到session,
以上是关于struts2中我想把结果放入到session中ActionContext.getContext().getSession()的主要内容,如果未能解决你的问题,请参考以下文章
(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢
oracle数据库中我想将a表中的b列结果为负数的转换成0,或者特定的一个数