【问题标题】:iterating over list of objects jstl迭代对象列表 jstl
【发布时间】:2013-09-02 08:00:29
【问题描述】:

我知道之前有人问过这个问题 - How to iterate an object over a list of objects in JSTL?。我尝试了这些建议,但仍然没有成功。

POJO

public class VwSfuser implements java.io.Serializable {
private VwSfuserId id;
private String name;
private String userid;

public VwSfuser() {
}

public VwSfuser(VwSfuserId id) {
    this.id = id;
}

public VwSfuserId getId() {
    return this.id;
}

public void setId(VwSfuserId id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getUserid() {
    return userid;
}

public void setUserid(String userid) {
    this.userid = userid;
}
  }

我将 List 传递给 jsp 并尝试像这样访问: JSTL

 <c:forEach items="${model.userNameList}" var="list">        
        <option value="${list.userid}">${list.name}</option>
      </c:forEach>

现在,我得到的是:

javax.el.PropertyNotFoundException:在 java.lang.String 类型上找不到属性“userid”

【问题讨论】:

  • 显示您在模型中添加userNameList 的代码。

标签: jsp jstl


【解决方案1】:

你不需要写model.

试试这个:

<c:forEach items="${userNameList}" var="list">        
    <option value="${list.userid}">${list.name}</option>
</c:forEach>

如果您已将userNameList 正确添加到模型中,这应该可以工作。

【讨论】:

  • FYI 模型是一个哈希图,我像这样使用:model.put("userNameList", "VwSfuserNameList_all");因此,我将不得不使用 model.userNameList
  • @user1736333 抱歉,我只是假设您使用的是 Spring-MVC 及其方法。好像你在这里做了自己的东西。显示更多从您将其添加到模型的代码。尤其是你的VwSfuserNameList_all变量的声明,如果有这样的变量的话。
  • 哦,伙计.. 麻烦您了.. 我做了这个 model.put("userNameList", "VwSfuserNameList_all");而不是 model.put("userNameList", VwSfuserNameList_all);..
  • @user1736333 我有一种感觉是问题所在......我觉得这有点奇怪。很高兴你解决了。