用这句话 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(),用法如下
// java2. 若是项目使用了Struts2框架,Struts2自己也封装了个 session,这个 session是个 Map类型的对象。所以和 Map 用法一样的,使用 put 存值,get 取值。用法是:
// java在项目中,如果使用了 Struts2 框架,最好 Java 和 JSP 文件中都保持使用 Struts2 的 Session,因为原生 session 在一些不是用户调起的Action中可能无法正常获取值(因为原生Session依赖request请求,如Action之间跳转可能就没有request请求),而Struts2 Session则没有这个问题。
这个问题,可在Action内 使用 Stust2 Session 保存一个变量,紧跟着,使用原生的
ServletActionContext.getRequest().getSession().getAttribute 就无法获取到值。
如果有误,欢迎指出 。
使用上面的代码,注意import 相应的类库。