Spring boot не может найти файл jsp в приложении. Я не знаю, почему он не может найти файл jsp по заданному пути. Не могли бы вы сообщить мне, как решить эту проблему?
SpringBootHelloWorldApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootHelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootHelloWorldApplication.class, args);
}
}
WelcomeController.java
@Controller
public class WelcomeController {
@RequestMapping("/hello")
public String getHello(Model model){
model.addAttribute("message", "welcome to the jsp page");
return "welcome";
}
}
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
welcome.jsp
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>
<html lang = "en">
<body>Message: ${message}
</body>
</html>
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springboot.application</groupId>
<artifactId>springbootmvc2</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springbootmvc2 Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</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.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
</project>
Я прикрепил структуру каталогов
Можете ли вы изменить прицел spring-boot-starter-tomcat на provided вместо стандартного прицела compile и проверить?
Я изменил на предоставленный. Я получаю ошибку, указанную ниже. Страница ошибки Whitelabel В этом приложении нет явного сопоставления для / error, поэтому вы рассматриваете это как откат. Среда, 14 ноября, 10:12:15 IST 2018 Произошла непредвиденная ошибка (тип = не найдено, статус = 404). Нет доступных сообщений
@ user3094331 Вызывается ли ваш контроллер, вы проверили это, какова точная ошибка, а также какие аннотации вы добавили к классу SpringBootHelloWorldApplication, можете ли вы опубликовать этот класс полностью.
Я отправил пройденный курс
оба указывают на версию 8.5.23
У меня все работает нормально, я только что добавил аннотацию @SpringBootApplication в класс SpringBootHelloWorldApplication. По какому URL-адресу вы вызываете в браузере: http://localhost:8080/hello, верно?
да, я использую только этот URL. Вы изменили объем на предоставленный?
Я пробовал с <scope>provided</scope> и без, и он работал в обоих случаях. Это действительно странно. Не могли бы вы выложить журнал ошибок?




Вам не хватает аннотации @SpringBootApplication для основного класса.
Вот рабочий пример: Spring-Boot-Jsp-Demo
@VarunJain, вы можете увидеть время моего ответа и его ответ на редактирование ... Я опубликовал это после того, как он отредактировал вопрос.
где находится welcome.jsp? также приложите снимок экрана со структурой каталогов.