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才行? 展开
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才行? 展开
2个回答
展开全部
第一个问题,这三种方法都是经常用的!不用struts2框架第一种可以忽略。
不过在jsp里最好尽量少用java代码!
第二个问题,servletContex本来就是application的上下文,可以说application等同于ServletContext,你上面将值设置到context里面,而没有保存到session里面,当然取不到你所期待的值。。。但用application取就行!
把context.setAttribute("pass", pass);改成session.setAttribute("pass", pass);就行了。
不过在jsp里最好尽量少用java代码!
第二个问题,servletContex本来就是application的上下文,可以说application等同于ServletContext,你上面将值设置到context里面,而没有保存到session里面,当然取不到你所期待的值。。。但用application取就行!
把context.setAttribute("pass", pass);改成session.setAttribute("pass", pass);就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询