动态添加值以下拉

时间:2013-05-20 08:15:04

标签: jsp jsp-tags

下面是我动态填充下拉列表的代码。但是,当我试图这样做时,没有任何东西会在下拉列表中填充。任何帮助将不胜感激。

<% List<String> w = new ArrayList<String>();
    w.add("John");
    w.add("Joseph");
    %>
    <td><select id="web" name="web">

         <c:forEach var="item" items="${w}">
              <option><c:out value="${item}"/></option>
         </c:foreach>

    </select></td> 

3 个答案:

答案 0 :(得分:0)

正确结束你的forEach

</c:forEach>

答案 1 :(得分:0)

似乎是变量范围问题。 EL仅适用于范围变量。所以它无法访问scriptlet varialbes。请尝试以下

<% List w = new ArrayList();
    w.add("John");
    w.add("Joseph");        
    pageContext.setAttribute("w", w);    
    %>
    <td>
    <select id="web" name="web">
         <c:forEach var="item" items="${w}">
              <option><c:out value="${item}"/></option>
         </c:forEach>
    </select>
    </td>

答案 2 :(得分:0)

如果您只想动态下拉列表,则可以通过带有逗号分隔列表的<c:set>设置值,然后使用<c:forEach>代替<c:forTokens delims="," ...>

例如:

<td>
    <c:set var="w">John,Joseph</c:set>
    <select id="web" name="web">
        <c:forTokens var="item" delims="," items="${w}">
            <option><c:out value="${item}" /></option>
        </c:forTokens>
    </select>
</td>