问题描述
我的UserAction里的代码如下:privateList<UserBean>findAllUser(){log.info("getalluserinf...");List<UserBean>list=newArrayList<UserBean>();UserBeanuser;Connectionconn=getConn();Stringsql="SELECT*FROMusersORDERBYno";PreparedStatementpstmt;try{pstmt=conn.prepareStatement(sql);ResultSetrs=pstmt.executeQuery();while(rs.next()){user=newUserBean();user.setId(rs.getInt("no"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));System.out.println(user.getid());注:此处打印的id是没有问题的。list.add(user);}}catch(SQLExceptione){e.printStackTrace();}returnlist;}但是到页面上显示就全部是0了。页面代码如下:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="/struts-tags"prefix="s"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>Userslist</title><styletype="text/css">table{border-collapse:collapse;}</style></head><body><br/><br/><br/><br/><tableborder="1"width="50%"align="center"><trbgcolor="#cccc00"><tdalign="center">UserId</td><tdalign="center">UserName</td><tdalign="center">Password</td><tdcolspan="2"align="center">Options</td></tr><s:iteratorvalue="userlist"><tr><tdalign="center"><s:propertyvalue="id"/></td><tdalign="center"><s:propertyvalue="username"/></td><tdalign="center"> <s:propertyvalue="password"/></td><tdalign="center"><ahref="update.jsp?id=<s:propertyvalue='id'/>&username=<s:propertyvalue='username'/>">update</a></td><tdalign="center"><ahref="delete.action?id=<s:propertyvalue='id'/>">delete</a></td></tr></s:iterator></table></body></html>求高手解答
解决方案
解决方案二:
那你得让我们知道<s:iteratorvalue="userlist">这个里面的userlist的问题了。你要把struts里面的userlist让我们看下。
解决方案三:
引用1楼qingtianxinchen的回复:
那你得让我们知道<s:iteratorvalue="userlist">这个里面的userlist的问题了。你要把struts里面的userlist让我们看下。
对,action中遍历下list,看看里面是否正常,再不行的话,用struts标签的对象栈...好像叫这个,能在页面上显示一些很有用的调试信息的
解决方案四:
你的action中输入和输出的成员变量有get和set方法么
解决方案五:
把UserBeanuser;放到while(rs.next()){循环里面UserBeanuser=newUserBean();
解决方案六:
引用1楼qingtianxinchen的回复:
那你得让我们知道<s:iteratorvalue="userlist">这个里面的userlist的问题了。你要把struts里面的userlist让我们看下。
恩恩,要看看
解决方案七:
引用3楼java_player2的回复:
你的action中输入和输出的成员变量有get和set方法么
对,应该是这个原因,我记得有次就出现了这个问题,但是为什么来着我忘了来个大神给解释解释呗
解决方案八:
struts是从内存中取的,<s:iteratorvalue="userlist">里面userlist肯定要存在才能取出来嘛。
解决方案九:
引用6楼Jukewu的回复:
Quote: 引用3楼java_player2的回复:
你的action中输入和输出的成员变量有get和set方法么对,应该是这个原因,我记得有次就出现了这个问题,但是为什么来着我忘了来个大神给解释解释呗
反向经过默认18个拦截器的时候,其中一个拦截器会调用所有的get方法,并把返回值放入值栈中
解决方案十:
system.out.print(list.size());如果大于0那就是页面JSP的问题。
解决方案十一:
<s:iteratorvalue="userlist">改成<s:iteratorvalue="userList"status="user"><tdalign="center"><s:propertyvalue="id"/></td>改成<tdalign="center"><s:propertyvalue="#user.id"/></td>然后再试试
解决方案十二:
可以用EL表达式先测试下。forEach看看