对应习惯了jsp开发的朋友来说,使用spring boot的时候也想使用jsp怎么办?本文将图文并茂的讲解怎么在spring boot中使用jsp。

整合步骤:

1:pom.xml中引入需要的jar

2:在yml文件中添加对jsp的支持

3:编写controller及jsp页面进行测试

在pom.xml文件中添加对tomcat和jstl的支持:

<!-- tomcat支持 -->

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<!--<scope>provided</scope>-->

</dependency>

<!-- jstl标签库 -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

</dependency>


spring boot 基于yml整合jsp_jsp页面



在yml中添加支持jsp视图:

spring:

mvc:

view: # 页面默认前缀目录

prefix: /WEB-INF/jsp/

suffix: .jsp


spring boot 基于yml整合jsp_spring_02

在src\main\webapp\WEB-INF\下创建jsp及jsp\page文件夹

如果webapp\WEB-INF没有的话也需要创建

添加测试的页面:

在jsp文件夹下创建index.jsp在page文件夹下创建page1.jsp页面

在test包下创建PageController。


项目目录结构如下:


spring boot 基于yml整合jsp_jsp页面_03


index.jsp页面:


spring boot 基于yml整合jsp_tomcat_04


page1.jsp页面:


spring boot 基于yml整合jsp_tomcat_05

PageController:


这个就是我们正常写的spring mvccontroller即可。

@Controller

public class PageController {

@RequestMapping(value = {"/","/index"})

public String index(Map<String, Object> model){

// 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面

// 本例为 /WEB-INF/jsp/index.jsp

model.put("time", new Date());

model.put("message", "欢迎访问凯哥Java【kaigejava】");

return "index";

}

/**

* 响应到JSP页面page1

*/

@RequestMapping("/page1")

public ModelAndView page1(){

// 页面位置 /WEB-INF/jsp/page/page.jsp

ModelAndView mav = new ModelAndView("page/page1");

mav.addObject("content", "this pageModel page/page1");

return mav;

}

/**

* 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串)

*/

@RequestMapping("/page2")

public String page2(Model model){

// 页面位置 /WEB-INF/jsp/page/page.jsp

model.addAttribute("content", hello + "(第二种)");

return "page/page1";

}

}


spring boot 基于yml整合jsp_jsp页面_06


启动项目进行访问:


spring boot 基于yml整合jsp_jsp页面_07


访问page1:


spring boot 基于yml整合jsp_jsp页面_08


访问page2:


spring boot 基于yml整合jsp_tomcat_09


访问都正常,得到预期结果。说明spring boot整合jsp成功。