首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于<s:iterator>取值的有关问题!跪求解答~

2012-04-30 
关于s:iterator取值的问题!!跪求解答~~~~刚发错区了!最近又碰到一个取值的问题。首先是action代码:(重要

关于<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>
就可以实现了
[解决办法]

探讨
users是一个list对象,如果写<s:property value="age"/>这个肯定得不到了啊,
<s:iterator value="users" var="user">
<s:property value="#user.age"/>
</s:iterator>
就可以实现了

[解决办法]
在页面DEBUG一下 看参数传递过来了没有 。如果过来了。。就是你取值的方法有问题。。
<s:iterator value="users" var="user">
<s:property value="#user.age"/>
</s:iterator>

[解决办法]
在public String list()方法return之前加一句System.out.println("users:"+users.size());打印看看users的长度是不是大于0。
页面上用<s:iterator value="users">${age}</s:iterator>输出即可。
[解决办法]
看看你的struts.xml result 的type 是不是 redirect 而不是dispatcher(默认的)
[解决办法]
user对象本身就是null,可能是userdao的getUser方法this.hibernateTemplate.find就没查询出结果,在这里先打印下看看
[解决办法]
有select语句也不一定结果是对的。也许select * from user where id='xxx' 在数据库中没查询出。话说这个id的在数据库中的类型到底是int还是varchar呢
[解决办法]
Java code
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;} 


[解决办法]
那不就说明根本就没调用到这个方法咯
[解决办法]

Java code
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>
[解决办法]
探讨

引用:
那不就说明根本就没调用到这个方法咯


但是为什么?不是只要有get set方法,取值的时候就可以取出来嘛?怎么回事?大侠麻烦细说!

热点排行