日期:2014-05-17  浏览次数:20754 次

高手请进,为什么有get、set方法,不能正确显示那?
public class PersonAction extends ActionSupport{
public List<UserInfo> getPersonlist() {
return personlist;
}
  public void setPersonlist(List<UserInfo> personlist) {
this.personlist = personlist;
}

public List<UserInfo> personlist = new ArrayList<UserInfo>();
UserInfo userOneInfo = new UserInfo();


public UserInfo getUserOneInfo() {
return userOneInfo;
}
public void setUserOneInfo(UserInfo userOneInfo) {
this.userOneInfo = userOneInfo;
}
public String add() throws Exception
{
ResultSet rs = null;
String sql3 = "insert into tb_user(name,age,sex)values('"+userOneInfo.getName()+"','"+userOneInfo.getAge()+"','"+userOneInfo.getMale()+"');";
Connection conn= null;
Statement stmt = null;
//这一段省略,就是往数据库里面增加一条记录,可能添加成功
return list();
}

public String list()throws Exception
{

  连接数据库部分省略
  rs= (ResultSet) stmt.executeQuery("select * from tb_user");
while(rs.next())
{
UserInfo temp = new UserInfo();
int intTemp = rs.getInt("id");
String tempStr="";
tempStr +=intTemp;
temp.setId(tempStr);
temp.setName(rs.getString("name"));
//其他的字段省略了
  这个地方没有问题。
personlist.add(temp);
}
return "list";
}
}

listPerson.jsp 代码如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib uri="/struts-tags" prefix="struts" %>

<title><struts:property value="titile" escape="false" /></title>
<a href="addPerson.jsp">新建人员资料</a>
<table>
  <tr>
  <th></th>
  <th>ID</th>
  <th>姓名</th>
  <th>年龄</th>
  </tr>
  <struts:iterator id="userOneInfo" value="personlist">
  <td><input type="checkbox" name="id" value="+${userOneInfo.id}+"></td>
  <td>${userOneInfo.id}</td>
  <td>${userOneInfo.name}</td>
  <td>${userOneInfo.age}</td>
  </tr>
  </struts:iterator>
</table>

问题是:list界面只显示了一列checkbox,id,name,age都为空。
但是如果把下面代码去掉,也就是userOneInfo的get、set方法去掉,就可以从数据库中查询出内容,正常显示。
public UserInfo getUserOneInfo() {
return userOneInfo;
}
public void setUserOneInfo(UserInfo userOneInfo) {
this.userOneInfo = userOneInfo;
}


哪位高手给指点一下为什么?

userOneInfo的get、set方法必须保留,否则不能从addperson界面获取age,name信息。







------解决方案--------------------
<struts:iterator id="userOneInfo" value="personlist">
id 换成其他名字试下