我要在jsp页面中迭代action中的list集合应该怎么做啊我的代码如下
action中的代码
private IRoleService roleService;
private List<Role> list;
public List<Role> getList() {
return list;
}
public void setList(List<Role> list) {
this.list = list;
}
public void setRoleService(IRoleService roleService) {
this.roleService = roleService;
}
public String listRole()
{
list = roleService.listAll();
if(list != null && list.size() > 0)
{
return "list";
}
return ERROR;
}
jsp页面代码
<table width="100%">
<thead>
<tr>
<th>角色名</th>
<th>创建时间</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<s:iterator value="list">
<tr>
<td><s:property value="roleName"/></td>
<td><s:property value="roleCreateDate"/></td>
<td><s:property value="roleRe"/></td>
<td><s:a href="updateRole.action?id=<s:property value="id"/>">编辑</s:a>|<s:a href="deleteRole.action?id=<s:property value="id"/>">删除</s:a></td>
</tr>
</s:iterator>
</tbody>
</table>
这样报错 ! 不知道是哪里错了
action中的代码
private IRoleService roleService;
private List<Role> list;
public List<Role> getList() {
return list;
}
public void setList(List<Role> list) {
this.list = list;
}
public void setRoleService(IRoleService roleService) {
this.roleService = roleService;
}
public String listRole()
{
list = roleService.listAll();
if(list != null && list.size() > 0)
{
return "list";
}
return ERROR;
}
jsp页面代码
<table width="100%">
<thead>
<tr>
<th>角色名</th>
<th>创建时间</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<s:iterator value="list">
<tr>
<td><s:property value="roleName"/></td>
<td><s:property value="roleCreateDate"/></td>
<td><s:property value="roleRe"/></td>
<td><s:a href="updateRole.action?id=<s:property value="id"/>">编辑</s:a>|<s:a href="deleteRole.action?id=<s:property value="id"/>">删除</s:a></td>
</tr>
</s:iterator>
</tbody>
</table>
这样报错 ! 不知道是哪里错了
解决方案 »
- ServletContextListener接口中的contextDestroyed步骤没有执行!
- Thread[com.mchange.v2.async.ThreadPoolAsynchronous
- 看下面程序,这个firstName和 lastName是怎么回事?
- 问问大家网页布局侧重用table好,还是侧重用div好
- no result found for action问题!高手进
- JDBC 调用存储过程 存储过程没有执行....
- tomcat5.5 数据源
- 关于java.net.HttpURLConnection链接外网报411错误的
- ██████★武汉的高手请进来★██████
- MQ5.3安装后,缺省配置为什么DEFAULT_CLUSTER集群不能连本地的资源库队列管理器?
- SWFupload 在Struts2下 :upload.parseRequest(request) 为空?
- cas单点登入为什么这么慢,求救
你这个list 没有初始化吧。
private List<Role> list = new ArrayList<Role>();
贴出错误的内容来啊
<tr>
<td><s:property value="#v.roleName"/></td>
<td><s:property value="#v.roleCreateDate"/></td>
<td><s:property value="#v.roleRe"/></td>
<td><s:a href="updateRole.action?id=<s:property value="#v.id"/>">编辑</s:a>|<s:a href="deleteRole.action?id=<s:property value="#v.id"/>">删除</s:a></td>
</tr>
</s:iterator>
<s:iterator value="list">
<s:properties value="uname"/>
</s:iterator>
或者
<s:iterator value="list" var="list">
<s:properties value="list.uname"/>
</s:iterator>
而不是
<s:iterator value="list">
<s:properties value="user.uname"/>
</s:iterator>
或者
<s:iterator value="list" var="list">
<s:properties value="list.user.uname"/>
</s:iterator>
另外在提一下此标签的两个属性:
status :如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈
id:用来标识元素的id。在UI和表单中为HTML的id属性
{
list = roleService.listAll();
if(list != null && list.size() > 0)
{
return "list"; //这个应该改成 return SUCCESS;
}
return ERROR;
}
你的第一个返回值应该是SUCCESS,不应该是list,你应该是SSH架构的吧!这样你的SUCCESS是返回到Struts.xml文件里与Result 的name属性的值进行匹配的,然后Jsp页面才能获取的list集合!
2.- - 我个人感觉这个list或许需要初始化 new ArrayList() 这样一下
3.看看你struts2的配置文件,其中对应的action的result的返回值是不是list,如果不是你这里就跳转不过去
4.如果以上没问题,那就<s:debug>一下,在页面上看看valuestack中对象的内容楼上有人也说了,iterato这个标签遍历的时候,是把其中的对象压入栈顶,而不是这个集合在栈顶
对象在栈顶的时候,你就可以直接取其中的属性- - 暂时我就能想到这些问题.......