Spring Boot with JSP Pages – Code Example

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=&quot;/&quot;)
    public String home(Model map) {
        return &quot;index&quot;;
    }
}

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

Ajitesh Kumar

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.
Posted in Java, Web. Tagged with , , .