J'essaie de créer une page d'accueil simple (en jsp) en utilisant Spring Boot.

Ci-dessous la structure du projet

enter image description here

Application

@SpringBootApplication
public class Application {

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

    public SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

}

APIController

@Controller
public class APIController {

    @RequestMapping("/")
    public String home() {
        System.out.println("testing");
        return "welcome";
    }
}

Lorsque j'accède à http://localhost:8080/, j'obtiens l'erreur ci-dessous

Cette application n'a pas de mappage explicite pour / error, vous voyez donc cela comme un repli.

Mer 23 mai 15:31:51 MYT 2018 Une erreur inattendue s'est produite (type = Not Found, status = 404). Aucun message disponible

Par curl

{"timestamp":1527061233703,"status":404,"error":"Not Found","message":"No message available","path":"/"}

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>

    <artifactId>spring-boot-web-jsp</artifactId>
    <packaging>war</packaging>
    <name>Spring Boot Web JSP Example</name>
    <description>Spring Boot Web JSP Example</description>

    <version>1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!-- This is a web application -->
        <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>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- Optional, test for static content, bootstrap CSS-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7</version>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <!-- Package as an executable jar/war -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
1
Cyndi 23 mai 2018 à 10:39

3 réponses

Meilleure réponse

Vous devez définir le préfixe et le suffixe pour votre fichier jsp dans le fichier application.properties comme suit:

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
0
Sudhir Ojha 23 mai 2018 à 08:30

Dans le répertoire \src\main\resources\static, créez un fichier index.html simple

<html>
    <head>Hello, Bich Van</head>
    <body>
        <h3>Today is a rainny day</h3>
    </body>
</html>

Puis réessayez à l'adresse http: // localhost: 8080.

Si vous n'aimez pas les fichiers HTML statiques, vous pouvez utiliser JSP, mais cela nécessite un peu de complication. Vous devez déclarer le résolveur de vue JSP dans la configuration Spring MVC.

Document de référence: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring -mvc-page-de-bienvenue

1
Do Nhu Vy 23 mai 2018 à 07:56

Assurez-vous que vous avez jasper et jstl dans la liste des dépendances:

    <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>

Voici un projet de démarrage fonctionnel - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

1
Eugen 23 mai 2018 à 08:00