如何在 JSP scriptlet 中有效地迭代 HashMap 來填入下拉清單?
在JSP中,遍歷 HashMap 與常規 Java 程式碼相同。可以採用以下方法:
for (Map.Entry<String, String> entry : countries.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); }
但是,不鼓勵使用 JSP scriptlet。相反,建議利用 JSTL 的
例如:
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <c:forEach items="${map}" var="entry"> Key = ${entry.key}, value = ${entry.value}<br> </c:forEach>
調整上述程式碼用於填入下拉清單:
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <select name="country"> <c:forEach items="${countries}" var="country"> <option value="${country.key}">${country.value}</option> </c:forEach> </select>
要使${countries}內的國家/地區可訪問,需要將其放置在適當的範圍內。這可以透過以下方式實現:
請求範圍(Servlet doGet 方法):
protected void doGet(HttpServletRequest request, HttpServletResponse response) { Map<String, String> countries = MainUtils.getCountries(); request.setAttribute("countries", countries); request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); }
public void contextInitialized(ServletContextEvent event) { Map<String, String> countries = MainUtils.getCountries(); event.getServletContext().setAttribute("countries", countries); }
以上是如何迭代 HashMap 來填入 JSP 下拉清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!