JSTL,无法填充组合框

时间:2015-04-28 17:34:44

标签: java combobox jstl

我在填充组合框时遇到问题。

我在JSP文件中使用以下代码:

<select style="width: 143px" name="selectedUser">
                            <c:forEach var="user" items="${userList}">
                                <option value='<c:out value="${user.id}"/>'>
                                    <c:out value="${user.name}" />
                                </option>
                            </c:forEach>
                    </select>

但是当我运行Web应用程序时,我的组合框是空的。

使用scriptlet时工作正常:

<select style="width: 143px" name="selectedUser">
                            <%
                                for (Korisnik user : userList) {
                                    String userValue = user.getSurname() + " " + user.getName();
                                    out.write("<option value='" + user.getId() + "'>"
                                            + userValue + "</option>");
                                }
                            %>
                    </select>

此外,我希望使用姓氏+名称的字符串填充组合框,如scriptlet中所示。为什么我的JSPL代码不起作用,如何在JSTL中使用姓氏和名称填充它。

感谢您的帮助,谢谢

修改

package hr.tvz.web.aplikacije.domain;

班级Korisnik:

package hr.tvz.web.aplikacije.domain;

public class Korisnik {
private int identifikator;
private String korisnickoIme;
private String ime;
private String prezime;

public Korisnik(int identifikator, String korisnickoIme, String ime,
        String prezime) {
    super();
    this.identifikator = identifikator;
    this.korisnickoIme = korisnickoIme;
    this.ime = ime;
    this.prezime = prezime;
}

public int getIdentifikator() {
    return identifikator;
}

public String getKorisnickoIme() {
    return korisnickoIme;
}

public String getIme() {
    return ime;
}

public String getPrezime() {
    return prezime;
}

}

3 个答案:

答案 0 :(得分:0)

无需使用<c:out>。试着用这个:

<select style="width: 143px" name="selectedUser">
     <c:forEach var="user" items="${userList}" >
           <option value="${user.id}" />
                  ${user.surname} ${user.name}
           </option>
     </c:forEach>
</select>

我在我的项目中测试了类似的东西,它对我来说很好。希望对你也有所帮助。

答案 1 :(得分:0)

我很感激所有的帮助。 我发现问题出在哪里,我现在觉得很傻。我一直在使用scriptlet从servlet获取属性,在用相同的JSTL代码替换scriptlet后,它就像它应该的那样工作。

答案 2 :(得分:0)

<select style="width: 143px" name="selectedUser">
  <c:forEach var="user" items="${userList.rows}">
    <option value='<c:out value="${user.id}"/>'>
      <c:out value="${user.name}" />
    </option>
  </c:forEach>
</select>

现在,您可以尝试一下。