Following needs to be done to setup Spring boot web app with JSP pages
Create a Spring Starter Project
Create a Spring Starter Project by selecting “Web” as one of the dependencies. This will create a Springboot project.
POM.xml Entries
Place following entries in pom.xml for processing JSP pages
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jdt.core.compiler</groupId> <artifactId>ecj</artifactId> <version>4.6.1</version> <scope>provided</scope> </dependency>
Configuration in application.properties
Place following configuration in application.properties
# JSP related configuration spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix= .jsp
Create Controller class
Create a sample controller class such as following:
package com.vflux.helloapp; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class WelcomeController { @RequestMapping(value="/") public String home(Model map) { return "index"; } }
Create JSP pages
- Create a folder src/main/webapp/WEB-INF/views
- Create a file index.jsp. Place the content such as following:
<h1>Hello World</h1>
Run Project as Spring Boot App
- Access URL such as http://localhost:8080/ in browser. Following would be displayed.
Latest posts by Ajitesh Kumar (see all)
- Agentic Reasoning Design Patterns in AI: Examples - October 18, 2024
- LLMs for Adaptive Learning & Personalized Education - October 8, 2024
- Sparse Mixture of Experts (MoE) Models: Examples - October 6, 2024
I found it very helpful. However the differences are not too understandable for me