From a6cb34d4a08c3fa4585a582be415b4c9d7d8f468 Mon Sep 17 00:00:00 2001 From: Kent Date: Fri, 15 Aug 2025 23:28:23 +0200 Subject: [PATCH] [jsp-map] map in jsp --- spring-boot-modules/spring-boot-jsp/pom.xml | 11 +++-- .../jsp/controller/MapDemoController.java | 36 ++++++++++++++++ .../WEB-INF/jsp/map-demo/using-jstl.jsp | 34 +++++++++++++++ .../WEB-INF/jsp/map-demo/using-scriptlets.jsp | 41 +++++++++++++++++++ 4 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 spring-boot-modules/spring-boot-jsp/src/main/java/com/baeldung/boot/jsp/controller/MapDemoController.java create mode 100644 spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-jstl.jsp create mode 100644 spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-scriptlets.jsp diff --git a/spring-boot-modules/spring-boot-jsp/pom.xml b/spring-boot-modules/spring-boot-jsp/pom.xml index fb0e45d93f38..8a104f5fa106 100644 --- a/spring-boot-modules/spring-boot-jsp/pom.xml +++ b/spring-boot-modules/spring-boot-jsp/pom.xml @@ -35,8 +35,13 @@ - javax.servlet - jstl + jakarta.servlet.jsp.jstl + jakarta.servlet.jsp.jstl-api + ${jstl.version} + + + org.glassfish.web + jakarta.servlet.jsp.jstl ${jstl.version} @@ -101,7 +106,7 @@ - 1.2 + 2.0.0 3.2.2 1.10.0 diff --git a/spring-boot-modules/spring-boot-jsp/src/main/java/com/baeldung/boot/jsp/controller/MapDemoController.java b/spring-boot-modules/spring-boot-jsp/src/main/java/com/baeldung/boot/jsp/controller/MapDemoController.java new file mode 100644 index 000000000000..97849e18ba4a --- /dev/null +++ b/spring-boot-modules/spring-boot-jsp/src/main/java/com/baeldung/boot/jsp/controller/MapDemoController.java @@ -0,0 +1,36 @@ +package com.baeldung.boot.jsp.controller; + +import java.util.Map; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +@RequestMapping("/map-demo") +public class MapDemoController { + + private final static Map movies = Map.of( + // @formatter:off + "M-01", "No Country for Old Men", + "M-02", "The Silence of the Lambs", + "M-03", "Back to the Future", + "M-04", "Gone with the Wind", + "M-05", "The Girl with the Dragon Tattoo" + // @formatter:on + ); + + @GetMapping("/using-scriptlets") + public String usingScriplets(Model model) { + model.addAttribute("movieMap", movies); + return "map-demo/using-scriptlets"; + } + + @GetMapping("/using-jstl") + public String usingJstl(Model model) { + model.addAttribute("movieMap", movies); + return "map-demo/using-jstl"; + + } +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-jstl.jsp b/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-jstl.jsp new file mode 100644 index 000000000000..27859cc9bdef --- /dev/null +++ b/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-jstl.jsp @@ -0,0 +1,34 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Demo - Using Map in JSP (JSTL) + + + +
Movies in the Map Object (Using JSTL)
+
+ + + + + + + + + + + +
CodeMovie Title
+ ${entry.key} + + ${entry.value} +
+ + \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-scriptlets.jsp b/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-scriptlets.jsp new file mode 100644 index 000000000000..0678fc4b6218 --- /dev/null +++ b/spring-boot-modules/spring-boot-jsp/src/main/webapp/WEB-INF/jsp/map-demo/using-scriptlets.jsp @@ -0,0 +1,41 @@ +<%@ page import="java.util.Map" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Demo - Using Map in JSP (Scriptlets) + + + +
Movies in the Map Object (Using JSP Scriptlets)
+
+<% Map movieMap = (Map) request.getAttribute("movieMap");%> + + + + + + <% + if (movieMap != null) { + for (Map.Entry entry : movieMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + %> + + + + + <% } + }%> +
CodeMovie Title
+ <%= key %> + + <%= value %> +
+ + \ No newline at end of file