Le Tutoriel de Spring Boot et JSP

View more categories:

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 :
  1. Configure pour utiliser le JSP de la couche View (View Layer)
  2. 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>1.5.9.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

View more categories: