struts2的<s:set>标签问题

List<Student> students=new ArrayList<Student>();
students.add(new Student("xiaoming",15));
students.add(new Student("xiaomingg",16));
students.add(new Student("xiaominggg",17));

一:用setAttribute方法就可以遍历成功,如下:
                request.setAttribute("students", students);
                <s:iterator value="#request.students" status="statuss">
                        ${statuss.index }:${name }----${id }
                </s:iterator>
二:用<s:set>标签,就不能遍历成功。如下:
                    <s:set name="students" value="students" scope="request"/>
                    <s:iterator value="#request.students" status="statuss">
                        ${statuss.index }:${name }----${id }
                    </s:iterator>

                    <s:set>标签不就是把值放入域对象中吗,为什么不能遍历成功呢

首先这跟 有关系,scope: 可选,指定新变量被放置的范围,该属性可以接受application、session、request、page或action 5个值。如果没有指定,默认是放置在Stack Context中。

1. 表示将值放到默认的位置中,
则这样取即可:

${statuss.index }:${auditContent }dd----${id }

/s:iterator
2. 表示将值放到request中,
则这样取即可:表示去request中取:

${statuss.index }:${auditContent }dd----${id }

/s:iterator
参考:
http://blog.csdn.net/wwwhongxia/article/details/6825914

如果要赋常量的话要加单引号 如 (为了看得明显我加了空格)

为什么没有显示.....

 如:<s:set name="student" value=" 'student' ">
 <s:set name="students" value="#request.students" scope=""/>
  1. 表示将值放到默认的位置中, 则这样取即可:
 <s:iterator value="students" status="statuss">
             ${statuss.index }:${auditContent }----${id }<br/>
        </s:iterator>

图片说明
2. 表示将值放到request中,
则这样取即可:表示去request中取:图片说明