在action中集合已经有值 用<s:debug></s:debug>标签可以看到值栈 和request里面确都没有值,下面贴代码求解:首先是展示的页面:<s:iterator value="#request.list" var="user">
    <tr>
        <td><s:property value="#user.id"/></td>
        <td><s:property value="#user.name"/></td>
        <td><s:property value="#user.address"/></td>
        <td><a href="#">删除</a> </td>
    </tr>
下面是js访问action//加载所有按钮
$("#lookAll").click(function() {
   $.post("user!loadAll.action",null,function(res){
        $("#allRes").show();
    });
});
接下来是actionprivate List<User> list;public void loadAll() {
    list = userService.loadAll();
    System.out.println(list.size());//已经确定list有值
    getRequest().setAttribute("list", list);//但在值栈和request中确没有值
}//getter... setter...
public List<User> getList() {
    return list;
}

public void setList(List<User> list) {
    this.list = list;
}

解决方案 »

  1.   

    request只在傳過來時拿到值,你用ajax是不能改變他的現在的值的,更何況你頁面加載完已經變成靜態了,即使你再控制顯示,值也是已經確定了,你應該針對那個按鈕去set它的值,不用再使用struts2標簽和request了!
      

  2.   

    ajax 是异步的  你只能取到数据之后,然后通过DOM操作一个一个的将取到的值set进去
      

  3.   

    可以将取到的直在一个单独的页面展示,本页面放个div,div里面放的就是那个页面的内容,然后用ajax刷新div里面的内容就可以了。
      

  4.   

    哦哦,应该这样说,div本来是空的,用ajax刷新下,将取到的数据放到div里面。第一次的加载页面的话可以在页面加载完成后调用一次这个ajax方法,div就有数据了。