1、SpringBoot整合整合jsp、整合freemarker、整合Thymeleaf。
首先说明一下,这里使用的是Springboot2.2.6.RELEASE版本,由于Springboot迭代很快,所以要注意版本问题。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.2.6.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.bie</groupId> 12 <artifactId>springboot-hello</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>springboot-hello</name> 15 <description>Demo project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 </properties> 20 21 <dependencies> 22 <dependency> 23 <groupId>org.springframework.boot</groupId> 24 <artifactId>spring-boot-starter-web</artifactId> 25 </dependency> 26 <dependency> 27 <groupId>org.springframework.boot</groupId> 28 <artifactId>spring-boot-starter-test</artifactId> 29 <scope>test</scope> 30 <exclusions> 31 <exclusion> 32 <groupId>org.junit.vintage</groupId> 33 <artifactId>junit-vintage-engine</artifactId> 34 </exclusion> 35 </exclusions> 36 </dependency> 37 <!-- springboot默认不推荐使用jsp,所以在web启动器中未包含这两个依赖包 --> 38 <!-- jstl,使用jsp的时候导入jstl标签库的坐标依赖包 --> 39 <dependency> 40 <groupId>javax.servlet</groupId> 41 <artifactId>jstl</artifactId> 42 </dependency> 43 <!-- jasper,是tomcat当中对jsp处理的一个jsp引擎 --> 44 <dependency> 45 <groupId>org.apache.tomcat.embed</groupId> 46 <artifactId>tomcat-embed-jasper</artifactId> 47 <scope>provided</scope> 48 </dependency> 49 </dependencies> 50 51 <build> 52 <plugins> 53 <plugin> 54 <groupId>org.springframework.boot</groupId> 55 <artifactId>spring-boot-maven-plugin</artifactId> 56 </plugin> 57 </plugins> 58 </build> 59 60 </project>
2、SpringBoot整合jsp,SpringBoot的全局配置文件,application.properties,配置jsp的访问路径和后缀。
1 # 配置jsp的访问路径的前缀和后缀,springboot2.2.6.RELEASE版本使用的配置。 2 spring.mvc.view.prefix=/WEB-INF/jsp/ 3 spring.mvc.view.suffix=.jsp
创建一个实体类User。
1 package com.bie.springboothello.po; 2 3 public class User { 4 5 private int id; 6 private String name; 7 private int age; 8 9 public int getId() { 10 return id; 11 } 12 13 public void setId(int id) { 14 this.id = id; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public int getAge() { 26 return age; 27 } 28 29 public void setAge(int age) { 30 this.age = age; 31 } 32 33 public User(int id, String name, int age) { 34 this.id = id; 35 this.name = name; 36 this.age = age; 37 } 38 }
创建控制器类。
1 package com.bie.springboothello.controller; 2 3 import com.bie.springboothello.po.User; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.ui.Model; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 8 import java.util.ArrayList; 9 import java.util.List; 10 11 /** 12 * SpringBoot整合jsp 13 */ 14 @Controller 15 public class UserController { 16 17 @RequestMapping(value = "/showUser") 18 public String showUser(Model model) { 19 List<User> list = new ArrayList<>(); 20 list.add(new User(1, "张飒飒", 25)); 21 list.add(new User(2, "李四四", 26)); 22 list.add(new User(3, "王五五", 23)); 23 list.add(new User(4, "赵六六", 24)); 24 25 // 需要一个Model对象 26 model.addAttribute(list); 27 // 跳转视图,跳转都userList.jsp 28 return "userList"; 29 } 30 31 }
创建jsp页面。jsp应该放到WEB-INF/jsp/,那么WEB-INF放到那里呢,WEB-INF默认需要放到ServletContext Path下面,此时将src/main下面创建webapp的目录,在webapp目录下面创建WEB-INF目录。
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www