标签中怎么遍历一个List对象,其中User中包含一个Set集合

时间:2021-05-16 19:31:42

Class User(){
    private int id;
    private String name;
    Set<Role> roles = HashSet<Role>(); //Role也为一个实体
    private Job job; //Job为一个实体
    ....省略 get set()
}
Class Role(){
    private int id;
    priavte String name;
        ....省略 get set()
}
Class Job(){
   private int id;
   private String name;
       ....省略 get set()
}

在Action 中将 List<User> userList对象 利用 ActionContext.getContext().put("userList",userList);放到值栈中。

请问在Jsp页面中,利用<s:iterator>标签该怎么把userList 中的内容给遍历出来。
以下是我出错的例子:

<s:iterator value="#userList" "> 
            <tr >
               <td>${id }&nbsp;</td>  //user的ID
                <td>${name }&nbsp;</td>  //user的名称
                <td>${job.name}&nbsp;</td> //job的名称  ,//该处job.name对不出来,报错
                <td>
                 <s:iterator value="roles">   //在这块<s:iterator>中报错
                 ${name } //roles的名称  // 
                 </s:iterator>                             //                      
                </td>
</s:iterator>

2 个解决方案

#1


问题解决了,上面的写法是对的,原来获取不了的原因是,hibernate 的延迟加载机制导致在页面获取其他关联对象时发现session已经关闭,无法获取,结果报could not initialize proxy - no Session错误。
怪自己没把错误提示看清楚,只看到了对jsp代码报错问题,没有注意到下面的could not initialize proxy - no Session错误。
关于hibernate 错误解决参见了http://blog.sina.com.cn/s/blog_85987afc0100ukl0.html  和http://blog.sina.com.cn/s/blog_85987afc0100ukl0.html

#2


自己解决最好,错误提示很重要,我也学习一下。

#1


问题解决了,上面的写法是对的,原来获取不了的原因是,hibernate 的延迟加载机制导致在页面获取其他关联对象时发现session已经关闭,无法获取,结果报could not initialize proxy - no Session错误。
怪自己没把错误提示看清楚,只看到了对jsp代码报错问题,没有注意到下面的could not initialize proxy - no Session错误。
关于hibernate 错误解决参见了http://blog.sina.com.cn/s/blog_85987afc0100ukl0.html  和http://blog.sina.com.cn/s/blog_85987afc0100ukl0.html

#2


自己解决最好,错误提示很重要,我也学习一下。