JSP에서 HashMap을 루프하려면 어떻게 해야 합니까?
어떻게 하면 루프를 통해HashMap
JSP에서요?
<%
HashMap<String, String> countries = MainUtils.getCountries(l);
%>
<select name="country">
<%
// Here I need to loop through countries.
%>
</select>
일반적인 자바 코드와 동일한 방식으로 동작합니다.
for (Map.Entry<String, String> entry : countries.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// ...
}
단, 스크립트렛(JSP 파일의 원시 Java 코드,<% %>
(things)는 불량한 관행으로 간주됩니다.JSTL을 설치할 것을 권장합니다(JAR 파일을 드롭하기만 하면 됩니다)./WEB-INF/lib
필요한 태그립을 JSP 위에 선언합니다).다른 것 중에서 반복할 수 있는 태그가 있습니다.Map
s. 모든 반복이 당신에게 도움을 줄 것이고, 그것은 다시 다음 단계로 넘어갑니다.getKey()
그리고.getValue()
방법들.
기본적인 예를 다음에 나타냅니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${map}" var="entry">
Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>
따라서 다음과 같이 특정 문제를 해결할 수 있습니다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<select name="country">
<c:forEach items="${countries}" var="country">
<option value="${country.key}">${country.value}</option>
</c:forEach>
</select>
필요한 것은Servlet
또는ServletContextListener
을 배치하다${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);
}
또는 이 목록이 응용 프로그램 전체의 상수여야 하는 경우ServletContextListener
의contextInitialized()
한 번만 로드되고 메모리에 저장되도록 합니다.
public void contextInitialized(ServletContextEvent event) {
Map<String, String> countries = MainUtils.getCountries();
event.getServletContext().setAttribute("countries", countries);
}
두 경우 모두countries
에 의해 EL에서 입수할 수 있습니다.${countries}
.
이게 도움이 됐으면 좋겠다.
다음 항목도 참조하십시오.
- JSTL <c:forEach> 태그를 사용하여 목록 및 맵 요소를 반복합니다.
- <c:forEach>에서 네스트된 맵을 반복하는 방법
- JSTL을 사용하여 HashMap 내에서 ArrayList를 반복하는 방법
- 특수 자동 시작 서블릿을 사용하여 시작 시 초기화 및 애플리케이션 데이터 공유
루프 내에서 달성하고 싶은 것에 따라 다음 중 하나를 반복합니다.
countries.keySet()
countries.entrySet()
countries.values()
아래 코드가 도움이 됩니다.
처음에 정의했습니다.partnerTypesMap
서버 측에서 다음과 같이 처리됩니다.
Map<String, String> partnerTypes = new HashMap<>();
그것에 가치를 추가한 후에 나는 오브젝트를 에 추가했다.model
,
model.addAttribute("partnerTypesMap", partnerTypes);
아래에 사용하는 페이지를 렌더링할 때foreach
한 장 한 장 인쇄해 주세요.
<c:forEach items="${partnerTypesMap}" var="partnerTypesMap">
<form:option value="${partnerTypesMap['value']}">${partnerTypesMap['key']}</form:option>
</c:forEach>
언급URL : https://stackoverflow.com/questions/1835683/how-to-loop-through-a-hashmap-in-jsp
'source' 카테고리의 다른 글
PDO 연결을 올바르게 설정하는 방법 (0) | 2022.12.05 |
---|---|
MySQL 서버에 연결할 수 없음 오류 111 (0) | 2022.12.05 |
각도에 따라 헤더를 동적으로 변경하는 방법JS 부분 뷰? (0) | 2022.12.05 |
require_once는 왜 이렇게 사용하기 나쁜가요? (0) | 2022.12.05 |
JavaScript DOM 제거 요소 (0) | 2022.12.05 |