对应习惯了jsp开发的朋友来说,使用spring boot的时候也想使用jsp怎么办?本文将图文并茂的讲解怎么在spring boot中使用jsp。
整合步骤:
1:pom.xml中引入需要的jar
2:在yml文件中添加对jsp的支持
3:编写controller及jsp页面进行测试
在pom.xml文件中添加对tomcat和jstl的支持:
org.apache.tomcat.embed
tomcat-embed-jasper
javax.servlet
jstl
在yml中添加支持jsp视图:
spring:
mvc:
view: # 页面默认前缀目录
prefix: /WEB-INF/jsp/
suffix: .jsp
在src\main\webapp\WEB-INF\下创建jsp及jsp\page文件夹
如果webapp\WEB-INF没有的话也需要创建
添加测试的页面:
在jsp文件夹下创建index.jsp在page文件夹下创建page1.jsp页面
在test包下创建PageController。
项目目录结构如下:
index.jsp页面:
page1.jsp页面:
PageController:
这个就是我们正常写的spring mvccontroller即可。
@Controller
public class PageController {
@RequestMapping(value = {"/","/index"})
public String index(Map 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";
}
}
启动项目进行访问:
访问page1:
访问page2:
访问都正常,得到预期结果。说明spring boot整合jsp成功。