日期:2014-05-19  浏览次数:20681 次

list 在struts 2.1 jsp中怎么显示?急。
我用的是struts2.1 + spring 3.0 + hibernate 3.3

我有2个表.
表users有 4个字段: uid, uname, upass, groupid.
表groups有2个字段: id, groupname.
其中表users字段groupid---与表group的id字段外键关联。

String queryString = "from Users";
return getHibernateTemplate().find(queryString); 查询结果是List

JSP如下:
<table border="1"> 
  <tr><td>编号</td><td>用户名</td><td>密码</td><td>组名</td></tr>
    <s:iterator value="userList">
    <tr>
    <td>${uid}</td>
    <td>${uname }</td>
    <td>${upass }</td>
    <td>${groups.groupname }</td>
    </tr>
    </s:iterator>
  </table>

上面的userList就是上面查询得到的List, 
经调试uid, uname, upass的结果都是对的,
但加上groups.groupname会出http 500错, 请问这个地方怎么写?
(我写的UsersDAO中有一个属性为group, 大小写没错, 而且对应Groups )

------解决方案--------------------
你的页面改用C标签,代码如下
<c:forEach items="${userList}" var="user">
    <tr>
    <td>${user.uid}</td>
    <td>${user.uname }</td>
    <td>${user.upass }</td>
    <td>${user.groups.groupname }</td>
    </tr>
</c:forEach>

当然头部要导入c标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
------解决方案--------------------
你User实体里面有groups属性吗。hibernate的关联映射都配置好了吗
------解决方案--------------------
是否延迟加载改为false
------解决方案--------------------
引用:
你User实体里面有groups属性吗。hibernate的关联映射都配置好了吗

+1

------解决方案--------------------
异常信息贴出来
------解决方案--------------------
String queryString = "from Users";
return getHibernateTemplate().find(queryString); 
好像和groups表没什么关系吧,只是在对users表进行操作。查询结果的list里也不会有groupname这个字段的值,JSP页面的List中也就无法显示了
------解决方案--------------------
其实实现蛮简单的  我有增删改查分页的代码。。。
http://download.csdn.net/detail/cheney20121/4960289
 包括一些登录 和注册的源代码。。。
------解决方案--------------------

------解决方案--------------------
问题就处在这里
但加上groups.groupname会出http 500错, 请问这个地方怎么写?
(我写的UsersDAO中有一个属性为group, 大小写没错, 而且对应Groups )

Hibernate配置文件要配置一对多的关系,主表实体bean中创建Groups 对象