求解:ssh + ajax 无刷新去取数据库里的数据,但页面拿不到值
在action中集合已经有值 用<s:debug></s:debug>标签可以看到值栈 和request里面确都没有值,下面贴代码求解:
首先是展示的页面:
- HTML code
<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
- JScript code
//加载所有按钮$("#lookAll").click(function() { $.post("user!loadAll.action",null,function(res){ $("#allRes").show(); });});
接下来是action
- Java code
private 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;}
[解决办法]
request只在拿到值,你用ajax是不能改他的在的值的,更何你面加完已成了,即使你再控制示,值也是已定了,你那按去set它的值,不用再使用struts2和request了!
[解决办法]
ajax 是异步的 你只能取到数据之后,然后通过DOM操作一个一个的将取到的值set进去
[解决办法]
哦哦,应该这样说,div本来是空的,用ajax刷新下,将取到的数据放到div里面。第一次的加载页面的话可以在页面加载完成后调用一次这个ajax方法,div就有数据了。