关于<s:iterator>取值的问题!!跪求解答~~~~
刚发错区了!
最近又碰到一个取值的问题。
首先是action代码:(重要的部分)
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public String list() {
this.users = this.userManager.getUsers();
return "list";
}
uerdao部分:(重要的部分)
public List<User> getUser(int id) {
return (List<User>)this.hibernateTemplate.find("from com.zc.model.User u where u.id='"+id+"'" );
}
取值部分:(重要的部分)
<s:iterator value="users">
<s:property value="age"/>
</s:iterator>
差不多就这些了!问题是,前台有select语句输出,但是不知道为什么age属性为0.而且其他string属性为空?
(也不知道代码贴的全不全,各位如果要看什么代码可以告诉我!)
[解决办法]
<s:iterator value="users" var="user">
<s:property value="#user.age"/>
</s:iterator>
[解决办法]
取值部分:(重要的部分)
<s:iterator value="users" id="user">
<s:property value="age"/>
</s:iterator>
加上id试试
[解决办法]
迭代嘛。。2楼正解。。。
[解决办法]
users是一个list对象,如果写<s:property value="age"/>这个肯定得不到了啊,
<s:iterator value="users" var="user">
<s:property value="#user.age"/>
</s:iterator>
就可以实现了
[解决办法]
public List<User> getUser(int id) { System.out.println("id is:"+id); List<User> list = new ArrayList<User>(); list = (List<User>) this.hibernateTemplate .find("from com.zc.model.User u where u.id='" + id + "'"); System.out.println("user.size:" + list.size()); for (int i = 0; i < list.size(); i++) { System.out.println("user.age:"+list.get(i).getAge()); } return list;}
[解决办法]
那不就说明根本就没调用到这个方法咯
[解决办法]
dao: public List getUser(int id){ return this.getHibernateTemplate().find("from com.zc.model.User u where u.id='"+id+"'"); }action:private List list; public final List getList() { return list; } public final void setList(List list) { this.list = list; } public String getUser()throws Exception { list=uerdao.getUser(id); return "list"; } 取值部分: <s:iterator value="list"> <s:property value="age"/>(你user里要有age,而且user和表里的user冲突吧,最好别用user做实体名) </s:iterator>
[解决办法]