Spring Boot -03- Spring Boot 整合 JSP
上面已经完成了 Spring Boot 项目的简单搭建,我们仅仅需要进行一些简单的设置,写一个 HelloController 就能够直接运行了,不要太简单…接下来我们再深入了解一下 Spring Boot 的使用。
Spring Boot 加入 JSP 支持
Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,但是这个我们不熟悉啊,我们还是想要使用 JSP 怎么办呢?
(1)修改 pom.xml 增加对 JSP 文件的支持
<!-- servlet依赖. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat的支持.–>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
【注意位置】:
(2)右下角会提示,点击 import
(3)配置试图重定向 JSP 文件的位置
修改 application.yml 文件,将我们的 JSP 文件重定向到 /WEB-INF/views/ 目录下:
(4)创建上面的目录,和 index.jsp,page1.jsp 两个测试 jsp 文件,内容:
文件较多注意目录结构:
index.jsp 文件源码:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring Boot Sample</title>
</head>
<body>
Time: ${time}
<br>
Message: ${message}
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
page1.jsp 文件源代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring Boot Sample</title>
</head>
<body>
<h1>${content }</h1>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
(5)创建 JspController.java (注意目录,看上面截图)
JspController.java 文件源代码(看注释):
package com.xpwi.springboot;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.Date;
import java.util.Map;
/**
- @author xiaodongdong
- @description: 测试controller跳转到jsp页面
- @create 2017-11-13 11:36
**/
@Controller
public class JspController {
// 从 application.yml 中读取配置,如取不到默认值为Hello Jsp
@Value("${application.hello:肖朋伟:Hello Jsp}")
private String hello = "肖朋伟:Hello Jsp";
/**
* 默认页<br/>
* @RequestMapping("/") 和 @RequestMapping 是有区别的
* 如果不写参数,则为全局默认页,加入输入404页面,也会自动访问到这个页面。
* 如果加了参数“/”,则只认为是根页面。
* 可以通过localhost:8080或者localhost:8080/index访问该方法
*/
@RequestMapping(value = {"/","/index"})
public String index(Map<String, Object> model){
// 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面
// 本例为 /WEB-INF/views/index.jsp
model.put("time", new Date());
model.put("message", this.hello);
//return 的是文件的名字
return "index";
}
/**
* (方法一)
* 响应到JSP页面page1
*/
@RequestMapping("/page1")
public ModelAndView page1(){
// 页面位置 /WEB-INF/views/page1.jsp
ModelAndView mav = new ModelAndView("page1");
mav.addObject("content", hello);
return mav;
}
/**
* (方法二)
* 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串)
* 浏览器地址栏使用 page2
*/
@RequestMapping("/page2")
public String page2(Model model){
// 页面位置 /WEB-INF/views/page1.jsp
model.addAttribute("content", hello + "(第二种)");
return "page1";
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
访问测试:
(1)访问:
http://localhost:8080/index
- 1
(2)访问:
http://localhost:8080/page1
- 1
(3)访问:
http://localhost:8080/page2
- 1
转载自 https://blog.csdn.net/qq_40147863/article/details/84197797