jsp如何获取struts2 返回jsp页面action中返回的对象的值

2014年7月 Java大版内专家分月排行榜第二
2015年1月 Java大版内专家分月排行榜第三2014年8月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。对于如何把struts2的action中的值传到jsp页面中,主要的方法有2种:
使用转发视图利用request域中储存所需的值
使用重定向时存储数据进入session使其在jsp中可以获得
下面,让我们分先后的讲解这2种方法!
一、转发到jsp:
准备步骤:
jsp页面随时准备使用获取request中的值,
action中的值分2种,一种是在方法中诞生的,作用域也是方法内;一种是定义为类成员(并带有get,set或者为public),此种方式只需赋值。
&&&&&2.操作流程:
对于action的类属性,直接为其赋值(例如 message="Test";),然后在jsp页面中使用取出这个值(${message },直接以类属性名称取值即可,el默认的取值域就是request,struts2会将action的所有带有get,set(这两个方法必须同时有)的属性自动的放入request域中【当然你也可以使用struts的标签库,不推荐】)
对于action中方法中产生的数据,又不想为其在action类中定义对应的成员,我们可以手动的将其存放进入request域中,在struts2中,有2种方式可以将数据存入request中。
        (1)一种是通过ActionContext.getContext().put("message",message);直接放入将数据request域中,不获取request本身,获取其
           中的Map;
        (2)另一种是使用ServletActionContext.getRequest().setAttribute("message",message);直接取得,再使用
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 的方法setAttribute()方法存入数据!将数据存入request中后,jsp中取值并无差别(同上)!
二、重定向到jsp:
准备步骤:同上!不同处是不管要存入的数据是不是类的属性,我们都必须在方法中进行处理才能将数据存入session,而不能依靠struts2自动帮我们搞定!
操作流程:
不管数据是哪里诞生的,得到数据后!比如为message;同上的第二种情况:也有2中方式将数据存入到session中:
(1)在方法中通过ActionContext().getContext().getSession().put("message",message);首先获取session中的map,再使用的方法put()存入数据
(2)在方法中通过ServletActionContext().getRequest().getSession().setAttribute("message",message);首先获取,再使用的setAttribute方法将数据存入session域。
最后,不管那种方式将数据存入到session中,我们都可在jsp页面中获取session中的值,例如${sessionScope.message }
三、总结:
不论如何,总是将数据存入tomcat提供的几个存数据的域中(request,session,application),然后在页面通过获取即可!
阅读(...) 评论()13850人阅读
如果想将struts2 action中的某个对象,链表或是字符串传到jsp页面,只需在action中定义 这个对象,链表或字符串,然后生成get,set方法。这样页面就可以获取了。例如:
public class LoginAction extends ActionSupport{
private U // 对象
private S // 字符串
public List list = new LinkedList();// 链表
public User getUser() {
public void setUser(User user) {
this.user =
public String getUsername() {
public void setUsername(String username) {
this.username =
public List getList() {
public void setList(List list) {
this.list =
1、jsp页面获取字符串的方法
&s:property value=&message&/& &message:字符串名称,必须与action中保持一致
2、jsp页面获取链表中值得方法,一般list中都是存放的从数据库取出来的对象。取值如下:
&s:iterator value=&list& status=&st&& &list:链表名称必须与action中一致
& & &s:property value=&username&/& &即可获取到list中user对象的username属性的值。
&/s:iterator&
3.jsp页面获取对象中的属性值,无论做修改还是查详情,都需要将取出的对象属性值显示在页面上。
操作如下:
&s:property value='user.state' /& user:对象名称;state:对象属性。必须与User类中保持一致。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:195257次
积分:2045
积分:2045
排名:第18794名
原创:42篇
转载:12篇
评论:23条
(7)(1)(1)(1)(1)(2)(1)(1)(1)(1)(1)(5)(3)(5)(7)(5)(11)25371人阅读
java(38)
不是action传值到jsp页面,而是jsp页面获取action中的属性值,或者范围(如request,session,application等)里的值。所以,有两种方法1,获取的是action属性的值,用struts2标签和ognl即可获取如,&s:property&&value=&属性名.属性名。。。&/&&这种形式2,获取的是范围内的值直接使用EL表达式如${name}为requestScope范围绑定的名为name的属性,省略requestScope因为这是默认的范围${sessionScope.name}为sessionScope范围绑定的名为name的属性
1)action定义getPersons()&&
2)Person中定义getName()和getAge()&&
&s:iterator&id=&u&&value=&persons&&&&
&&s:property&value='#u.getName()'/&&&
&&s:property&value='#u.getAge()'/&&&
&/s:iterator&
总结来说是2中方式:如下&
1、一般是在Action中定义一个成员变量,然后对这个成员变量提供get/set方法,在JSP页面就可以取到这个变量的值了。
  1)在Action中定义成员变量
//定义一个成员变量&
private&String&&
//提供get/set方法&
public&String&getMessage()&{&
&&&&return&&
public&void&setMessage(String&message)&{&
&&&&this.message&=&&
  2)在JSP页面中取值
${message}&
&s:property&value=&message&/&
  2、但是定义的成员变量多了,感觉整个Action的代码就很长了。这个时候可以使用一些Servlet&API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。
  1)在Action中存值
ActionContext&actionContext&=&ActionContext.getContext();&
&&&&&&&&&&
//get&HttpServletRequest&
Map&String,Object&&request&=&(Map)&actionContext.get(&request&);&
request.put(&a&,&&a&is&in&request&);&
&&&&&&&&&&
//get&HttpSession&
//Map&String,Object&&session&=&(Map)&actionContext.get(&session&);&
Map&String,Object&&session&=&actionContext.getSession();&
session.put(&b&,&&b&is&in&session&);&
&&&&&&&&&&
//get&ServletContext&
//Map&String,Object&&application&&=&(Map)&actionContext.get(&application&);&
Map&String,Object&&application&&=&actionContext.getApplication();&
application.put(&c&,&&c&is&in&application&);
  2)在JSP页面上取值
or&&&&&&&&&&&&&&&
${requestScope.a}&
${sessionScope.b}&
${applicationScope.c}
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:665271次
积分:5602
积分:5602
排名:第4657名
原创:50篇
转载:161篇
评论:89条
(1)(1)(3)(2)(1)(1)(1)(1)(1)(15)(1)(6)(14)(16)(5)(1)(10)(3)(4)(4)(8)(1)(2)(7)(30)(12)(19)(5)(6)(5)(13)(18)

我要回帖

更多关于 jsp struts action 的文章

 

随机推荐