Раскрывающиеся списки JSP (<select>) из бобов - PullRequest
3 голосов
/ 15 января 2012

Я очень (очень!) Новичок в разработке JSP, и я пытаюсь сделать что-то, что я бы сделал в ASP.NET примерно через 30 секунд, но окружающая среда не дает покоя.

Пока на моей веб-странице есть следующее:

<body>
    <jsp:useBean id="allPlayerInfo" class="Player.AllPlayers" scope="page"/>
    <jsp:include page="../header.jsp"/>
    Player:
    <select id="drp_player">
        <c:forEach var="item" items="${allPlayerInfo.items}">
            <option value="${item}">${item}</option>
        </c:forEach>
    </select>
</body>

И файл AllPlayers выглядит так:

package Player;
public class AllPlayers {
    public java.util.List<String> getItems() {
        java.util.List<String> list = new java.util.ArrayList<String>();
        list.add("PlayerName1");
        list.add("PlayerName2");
        list.add("PlayerName3");
        return list;
    }
}

Я (очевидно?) В будущем заменит заполнитель "PlayerNames" на вызов базы данных, я просто хотел, чтобы этот простой тест сначала работал.

В настоящее время я получаю выборку, заполненную ничем. Есть идеи, что я делаю не так?

1 Ответ

4 голосов
/ 16 января 2012

Код, опубликованный до сих пор, выглядит хорошо, хотя ваш код JSP неполный.Taglibs отсутствуют в фрагменте JSP.Это часто бывает, когда вы просто хотите показать «фрагменты», но в реальном коде вы должны объявить тег <c:xxx> в верхней части JSP.В противном случае они просто не будут интерпретироваться компилятором JSP и будут рассматриваться как простой текст.Вы могли бы легко убедиться в этом, проверив сгенерированный JSP HTML-вывод, щелкнув правой кнопкой мыши Просмотр исходного кода в веб-браузере.В данном конкретном случае вы бы не видели <c:forEach> обычную ваниль там.

Я думаю, что это так.По крайней мере, признак появления пустого выпадающего списка подтверждает это.Добавьте следующее в начало вашего JSP:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

См. Также:

...