logic:iterate问题

hjm0803 2011-03-19 04:00:49
我在jsp中用了logic:iterate标签,可是一直没有数据显示,这是怎么回事,请大家帮帮我,谢谢
我的代码如下:
jsp代码:

<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/tlds/c.tld" prefix="c"%>
<%@ page isELIgnored="false" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<table align="center" border="1">
<logic:empty name="userInfoList" scope="request">
<h3>抱歉:没有您的信息</h3>
</logic:empty>
<logic:notEmpty name="userInfoList" scope="request">
<logic:iterate id="student" name="userInfoList" scope="request">
<tr>
<th width="33.3%">帐号</th>
<th width="33.3%">昵称</th>
<th width="33.3%">真实姓名</th>
</tr>
<tr>
<td width="33.3%"><bean:write name="student" property="ID"/></td>
<td width="33.3%"><bean:write name="student" property="userName"/></td>
<td width="33.3%"><bean:write name="student" property="trueName"/></td>
</tr>
<tr>
<th width="33.3%">电话号码</th>
<th width="33.3%">详细地址</th>
<th width="33.3%">电子邮箱</th>
</tr>
<tr>
<td width="33.3%"><bean:write name="student" property="phone"/></td>
<td width="33.3%"><bean:write name="student" property="address"/></td>
<td width="33.3%"><bean:write name="student" property="email"/></td>
</tr>
</logic:iterate>
</logic:notEmpty>
</table>
</body>
</html>
我的action代码部分如下:
public ActionForward checkUserInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
HttpSession session=request.getSession();
String userName=(String)session.getAttribute("userName");
if(userName==null||userName.equals(""))//若用户为空
return mapping.findForward("fail");
Map map=new HashMap();
map.put("userName",userName);
UserDao dao=new UserDaoSimple();
List list=new ArrayList();
list=dao.queryArray(map);//学生查询
request.setAttribute("userInfoList", list);//将查询结果放入request中
return mapping.findForward("studentInfo");//将数据返回查询页
}
我的queryArray方法如下:
public List queryArray(Map map) {
String sql=null;
List list = new ArrayList();
if (!map.isEmpty()) {
Set set = map.keySet();
Iterator it = set.iterator();
String column;
String value;
while (it.hasNext()) {
column = (String) it.next();
value = (String) map.get(column);
sql ="select * from [user] where " + column + "='" + value + "' ";//有点像持久化了
System.out.println(sql);
}
}
try {
con=openDB();
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {//若存在记录,则
UserBean user = new UserBean();//实例化UserBean,导入数据库中的数据
user.setID(rs.getInt("ID"));
user.setUserName(rs.getString("userName"));
user.setTrueName(rs.getString("trueName"));
user.setPassword(rs.getString("password"));
user.setPhone(rs.getString("phone"));
user.setAddress(rs.getString("address"));
user.setProblem(rs.getString("problem"));
user.setProblemAnswer(rs.getString("problemAnswer"));
user.setEmail(rs.getString("email"));
list.add(user);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
closeDB(con);
}
return list;
}
...全文
107 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lolita22 2011-03-23
  • 打赏
  • 举报
回复
可能你的查询里得到的是空值吧
LoongMint 2011-03-21
  • 打赏
  • 举报
回复
LZ的这个看着貌似没有什么问题。先确定在访问页面的时候,后台报异常了吗?你可以在页面中用request.getAttribute("userInfoList")取出list 然后迭代打印。看看有无结果。如果有说明是你的iterator标签没取到值,如果没有,那自然就是没查询出结果。在代码中没有发现什么问题的话,就一步步的debug吧。慢慢来。
ZhaoMinIsAngel 2011-03-21
  • 打赏
  • 举报
回复
看看你action里是怎么存值的
Spring89 2011-03-21
  • 打赏
  • 举报
回复
logic:empty换成logic:present来试一下!
iyan84 2011-03-21
  • 打赏
  • 举报
回复
list=dao.queryArray(map);//学生查询
request.setAttribute("userInfoList", list);//将查询结果放入request中
看下list有没值,没值的话页面就是空的,如果有值,页面上就有问题
ajaxUser002 2011-03-21
  • 打赏
  • 举报
回复
代码上没有问题呀

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧