qq_36752786
2017-08-02 03:18
采纳率: 100%
浏览 1.8k
已采纳

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>标签不就是把值放入域对象中吗,为什么不能遍历成功呢
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • guaoran 2017-08-02 10:38
    已采纳

    首先这跟 有关系,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

    打赏 评论
  • Tsui丶 2017-08-02 03:51

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

    打赏 评论
  • Tsui丶 2017-08-02 07:02

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

     如:<s:set name="student" value=" 'student' ">
    
    打赏 评论
  • guaoran 2017-08-02 10:43
     <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中取:图片说明

    打赏 评论

相关推荐 更多相似问题