Java, заполняющий <option>раскрывающийся список - PullRequest
2 голосов
/ 06 мая 2011

У меня есть следующий код:

<div>
<%
    TaxonomicTypeFeed ttf = new TaxonomicTypeFeed();
    ArrayList<String> tmp = ttf.getTypes();
    System.out.println("Going to print");
        for (int i=0; i < tmp.size(); i++)
    {
        System.out.println(tmp.get(i));
    }
%>

    <form>
        <select>
        <%
            Iterator<String> i = tmp.iterator();
            while (i.hasNext())
            {
            String str = i.next(); %>
            <option value="<%str.toString();%>"><%str.toString();%>
            </option>
        <%}%>
    </select>
    </form>
</div>

Хорошо создает выпадающий список, однако текста нет. Это первый раз, когда я когда-либо использовал любой из этих вариантов, поэтому я понятия не имею, правильно ли я поступаю,

Большое спасибо за вашу конструктивную критику заранее, U.

1 Ответ

3 голосов
/ 06 мая 2011

Вам нужно распечатать значения по <%= %>. <% %> ничего не печатает.

<option value="<%=str%>"><%=str%></option>

Не имеет отношения к проблеме : это не лучшая практика. Рассмотрите возможность использования taglibs / EL. Вы получите лучший читаемый / поддерживаемый код.

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="taxonomicTypeFeed" class="com.example.TaxonomicTypeFeed" />
...
<select>
    <c:forEach items="${taxonomicTypeFeed.types}" var="type">
        <option value="${type}">${type}</option>
    </c:forEach>
</select>

Вместо <jsp:useBean> вы также можете использовать предварительную обработку servlet .

...