devstory

Le Tutoriel de Spring Boot et JSP

  1. Les objectifs de cette publication
  2. Créer le projet Spring Boot
  3. Configurer pom.xml
  4. Configurer JSP View
  5. Controller & JSP
  6. Exécuter l'application

1. Les objectifs de cette publication

Spring est un framework reconnu car il supporte plusieurs technologies pour la couche View (View Layer). Les technologies que Spring fournit à la couche View sont JSP, Thymeleaf, Freemarker,...
Pour la raison de la simplicité de Thymeleaf, il est considéré comme la technologie par défaut utilisée pour la couche View, et est automatiquement configurée par Spring Boot. Par conséquent, si vous choisissez le JSP pour la couche View, vous devez le configurer.
Dans cet article, je vais vous montrer comment créer une application web avec Spring Boot, et utiliser JSP pour afficher des données. Ces contenus seront mentionnés dans cette publication :
  • Configure pour utiliser le JSP de la couche View (View Layer)
  • Expliquer la principe de fonctionnement de Controller & JSP.

2. Créer le projet Spring Boot

Sur Eclipse, créew un projet Spring Boot.
Saisissez :
  • Name: SpringBootJSP
  • Group: org.o7planning.org
  • Description: Spring Boot + JSP
  • Package: org.o7planning.sbjsp
Sélectionnez les technologies et les bibliothèques utilisées :
  • Web
OK, le projet a été créé.
SpringBootJspApplication.java
package org.o7planning.sbjsp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootJspApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootJspApplication.class, args);
    }
}

3. Configurer pom.xml

Configurew les bibliothèques nécessaires pour JSP/Servlet dans le fichier pom.xml:
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
Le contenu complet du fichier pom.xml :
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
        
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.o7planning</groupId>
    <artifactId>SpringBootJSP</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SpringBootJSP</name>
    <description>Spring Boot + JSP</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

4. Configurer JSP View

Dans le dossier src/main, créez un dous dossier webapp/WEB-INF/jsp, vos fichiers JSP seront mis dans ce dossier.
Dans les étapes suivantes, vous devez configurer pour indiquer le lieu où vous mettez des fichier JSP à Spring Boot.
OK, ouvrez le fichier application.properties et ajoutez les propriétés ci-dessous :
application.properties
# =============================================
# VIEW RESOLVER
# =============================================

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

5. Controller & JSP

La relation entre Controller et View sera expliquée dans la figure ci-dessous :
Person.java
package org.o7planning.sbjsp.model;

public class Person {

    private String firstName;
    private String lastName;

    public Person() {

    }

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}
MainController.java
package org.o7planning.sbjsp.controller;

import java.util.ArrayList;
import java.util.List;

import org.o7planning.sbjsp.model.Person;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class MainController {

    private static List<Person> persons = new ArrayList<Person>();

    static {
        persons.add(new Person("Bill", "Gates"));
        persons.add(new Person("Steve", "Jobs"));
    }

    @RequestMapping(value = { "/", "/index" }, method = RequestMethod.GET)
    public String index(Model model) {

        String message = "Hello Spring Boot + JSP";

        model.addAttribute("message", message);

        return "index";
    }

    @RequestMapping(value = { "/personList" }, method = RequestMethod.GET)
    public String viewPersonList(Model model) {

        model.addAttribute("persons", persons);

        return "personList";
    }

}
index.jsp
<!DOCTYPE HTML>
<html>
   <head>
      <meta charset="UTF-8" />
      <title>Welcome</title>
      <link rel="stylesheet" type="text/css"
                href="${pageContext.request.contextPath}/css/style.css"/>
   </head>
   <body>
      <h1>Welcome</h1>
      <h2>${message}</h2>
      
    
        
      <a href="${pageContext.request.contextPath}/personList">Person List</a>  
      
   </body>
  
</html>
personList.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Person List</title>
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
  </head>
  <body>
    <h1>Person List</h1>
   
    <br/><br/>
    <div>
      <table border="1">
        <tr>
          <th>First Name</th>
          <th>Last Name</th>
        </tr>
        <c:forEach  items="${persons}" var ="person">
        <tr>
          <td>${person.firstName}</td>
          <td>${person.lastName}</td>
        </tr>
        </c:forEach>
      </table>
    </div>
  </body>
 
</html>

6. Exécuter l'application

Sur Eclipse cliquez sur le bouton droit du projet, sélectionnez :
  • Run As/Spring Boot App

Tutoriels Spring Boot

Show More