Bagaimana untuk melelaran secara berkesan melalui HashMap dalam skrip JSP untuk mengisi senarai juntai bawah?
Dalam JSP, melintasi HashMap adalah sama dengan kod Java biasa. Seseorang boleh menggunakan pendekatan berikut:
for (Map.Entry<String, String> entry : countries.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); }
Walau bagaimanapun, menggunakan skrip JSP adalah tidak digalakkan. Sebaliknya, anda disyorkan untuk memanfaatkan
Sebagai contoh:
<%@ taglib prefix="c" uri="jakarta.tags.core" %> <c:forEach items="${map}" var="entry"> Key = ${entry.key}, value = ${entry.value}<br> </c:forEach>
Menyesuaikan kod yang disebutkan di atas untuk mengisi senarai lungsur turun:
<%@ 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>
Untuk menjadikan negara boleh diakses dari dalam ${countries}, ia perlu diletakkan dalam skop yang sesuai. Ini boleh dicapai melalui:
Skop permintaan (kaedah 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); }
Skop seluruh aplikasi (ServletContextListener contextInitialized kaedah):
public void contextInitialized(ServletContextEvent event) { Map<String, String> countries = MainUtils.getCountries(); event.getServletContext().setAttribute("countries", countries); }
Atas ialah kandungan terperinci Bagaimana untuk Mengulang Melalui HashMap untuk Mengisi Senarai Jatuh Turun JSP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!