0

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

<% 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> 
4

3 回答 3

0

正确结束你的 forEach

</c:forEach>
于 2013-05-20T08:35:24.363 回答
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>
于 2013-05-20T09:36:38.540 回答
0

如果您只想拥有一个动态下拉列表,那么您可以通过 a<c:set>使用逗号分隔列表设置值,而不是<c:forEach>使用 a<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>
于 2020-05-13T14:13:45.593 回答