struts2传值取值

初学习struts2在学习中,我已知道的传值取值有如下3种1:直接用struts2标签<s:propertyvalue=""/>2:用ContextAction实例访问s... 初学习struts2 在学习中,我已知道的传值取值有如下3种
1:直接用struts2标签<s:property value=""/>
2:用ContextAction实例访问servlet api
application request session各自的 put(String key,Object value)方法
如ActionContext ctx=ActionContext.getContext();
ctx.getSession().put("user", getName());
然后在跳转后的JSP页面用EL表达式 如${sessionScope.user}取值
3.用ServletContext 类 中的setAttribute(“”, )方法

ServletContext context=ServletActionContext.getServletContext();
context.setAttribute("pass", pass);然后在相应的jsp页面用getattribute()
如<%=session.getAttribute("pass") %>取值

我想问的是这三种方法各自有什么好处,一般在做项目中用哪种方法较多,望指教。
还有一个问题,我在用第三种方法的时候,在跳转后的jsp页面中取登陆页面的密码用了
<%=session.getAttribute("pass") %>但是取出来为空 把session换位application就行了

但是取用户名的时候却是用的getsession ctx.getSession().put("user", getName());
这两个session作用域不是一样的么,为什么一个用session可以一个必须用application才行?
展开
 我来答
木星上的程序员
2012-10-07 · TA获得超过476个赞
知道小有建树答主
回答量:602
采纳率:0%
帮助的人:411万
展开全部
第一个问题,这三种方法都是经常用的!不用struts2框架第一种可以忽略。
不过在jsp里最好尽量少用java代码!

第二个问题,servletContex本来就是application的上下文,可以说application等同于ServletContext,你上面将值设置到context里面,而没有保存到session里面,当然取不到你所期待的值。。。但用application取就行!
把context.setAttribute("pass", pass);改成session.setAttribute("pass", pass);就行了。
bfhrhrereer
2012-10-06
知道答主
回答量:53
采纳率:0%
帮助的人:13.2万
展开全部
都有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式