1、先来说说ValueStack在本次内容作用
//action中获取valuestack对象,用于保存数据
ActionContext.getContext().getValueStack()
//jsp中通过<s:iterator>迭代取得ValueStack的栈(顶?)的数据
2、将对象放入栈顶:
ActionContext.getContext().getValueStack().push("aa);
ActionContext.getContext().getValueStack().getRoot().add(0,"bb");
将数据放入map栈
ActionContext.getContext().getValueStack().set(“a”,”a”);
从值栈中获取数据
ActionContext.getContext().getValueStack().peek();
ActionContext.getContext().getValueStack().getRoot().get(0);
这里还不是很懂set、和push 的方法原理
这里是我UserAction的方法
public String findAll() {
List<User> list=userService.findAll();
System.out.println(list.get(0).getUsername());
//ActionContext.getContext().getValueStack().push(list);
ActionContext.getContext().getValueStack().set("list", list);
return "findAll";
}
jsp获取数据迭代代码
<h1>用户列表</h1>
<table border="1">
<s:iterator value="list">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="username"/></td>
<td><s:property value="password"/></td>
<td><input type="button" value="编辑"></td>
<td><button class="del">删除</button></td>
</tr>
</s:iterator>
</table>
如图:
这里我之前是用push保存的,结果迭代不出来,但是看别人也是这样写的能出来?后来发现有个set方法就试试就迭代出来数据了,也不懂为什么,若有大神看到麻烦讲解!!