SpringBoot整合JSP
JSP(JavaServerPages)是Java服务器页面部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。
JSP需要三个依赖来提供运行环境:
<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>1234567891011121314复制代码类型:[java]
导入依赖后对配置文件进行删改:
spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/Family?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: 123456 mvc: view: # 指明 jsp 以什么样的后缀结尾 suffix: .jsp # 指明 jsp 在 webapp 下的哪个目录 prefix: /WEB-INF/jsp/ debug: true123456789101112131415161718复制代码类型:[java]
完成以上配置后,我们将其他部分的代码还原到讲解MybatisPlus时的样子。
之后来对照一下目录结构:
(如果WEB-INF的文件夹图标没有特殊标识,那就需要右键->MarkDirectoryas->SourcesRoot)
由于IDEA认为JSP是一个过时的技术,所以没有默认的创建选项,因此我们要点击右上角的文件夹图标:
完成配置后,写代码进行测试。
首先在controller文件夹里创建TemplateController.java文件。
package com.javafamily.familydemo.controller;import com.javafamily.familydemo.model.PetsVO;import com.javafamily.familydemo.service.PetsService;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;import java.util.List;@Controller@RequestMapping("/template")public class TemplateController { @Resource PetsService petsService; @GetMapping("/jsp") public String index(Model model) { List<PetsVO> pets = petsService.getAll(); model.addAttribute("pets", pets); return "test"; } }1234567891011121314151617181920212223242526272829复制代码类型:[java]
(如果使用@RestController注解,则Controller中的方法无法返回jsp页面。@RestController注解会跳过视图解析器将返回值以json的形式返回。)
之后我们将JavaFamily.png拖进image文件中。然后编写test.jsp部分的代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>宠物</title> <link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.min.css"> </head> <body> <table class="table"> <tr> <td>name</td> <td>varieties</td> </tr> <c:forEach var="pets" items="${pets}"> <tr class="text-info"> <td>${pets.name}</td> <td>${pets.varieties}</td> </tr> </c:forEach> </table> <img src="/image/JavaFamily.png"> <script src="/webjars/jquery/jquery.min.js "></script> <script src="/webjars/bootstrap/js/bootstrap.min.js"></script> </body>1234567891011121314151617181920212223242526272829复制代码类型:[java]
完成后,执行代码,在浏览器输入http://localhost:8888/template/jsp,就可以将内容显示出来:
得到想要的结果。
赞 (0)