我想在我的项目中使用jsp,但是很难。
我把这两个依赖放在 pom.xml
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- If you want to use JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
然后我把这两行放在 aplication.properties 中spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
我创建了一个名为“index.jsp”的页面并将其放入<h1>
INDEX
</h1>
<p>
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aspernatur nam, nisi, repudiandae illum
ab a aut maxime deleniti voluptas praesentium dicta delectus. Voluptatibus consequuntur
necessitatibus hic eum suscipit, sequi autem.
</p>
还有我的 Controller :package com.example.curso.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping("/")
public String index() {
return "index";
}
}
当我尝试访问路线时出现错误最佳答案
根据您的堆栈跟踪,看起来 Thymeleaf 被配置为渲染引擎/ View 解析器。可能是因为你有 spring-boot-starter-thymeleaf
在您的类路径和 spring boot 中自动配置它。
在较新版本的 Spring Boot 中,JSP 支持已被删除。因此,您需要手动配置一些东西才能使其工作。
如果您想使用 jsp 而不是 thymeleaf 作为主要渲染引擎,请删除 spring-boot-starter-thymeleaf
从您的依赖项中复制您的 .jsp 文件到 webapp 文件夹下,如下所示:
应用程序属性:
spring.mvc.view.prefix:/jsp/
spring.mvc.view.suffix:.jsp
文件夹结构:├── pom.xml
├── src
│ └── main
│ ├── java
│ │ └── gt
│ │ └── SpringBootWebApplication.java
│ ├── resources
│ │ └── application.properties
│ └── webapp
│ ├── css
│ │ └── main.css
│ └── jsp
│ └── welcome.jsp
所需的依赖项: <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
欢迎.jsp<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html lang="en">
<head>
<c:url value="/css/main.css" var="jstlCss"/>
<link href="${jstlCss}" rel="stylesheet"/>
</head>
<body>
<h2>Message: ${msg}</h2>
</body>
</html>
@ Controller : @RequestMapping("/")
String welcome(Model m) {
m.addAttribute("msg", "Hello");
return "welcome";
}
使用 mvn spring-boot:run
运行运行@SpringBootApplication 的 main 方法可能不起作用
关于spring - 带有 Spring Boot 的 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64177451/