springboot官方不推荐使用jsp,所以springboot默认组件中不包含jsp组件,所以在springboot中想要使用jsp的话需要引入其他的jar包。
pom文件添加一下内容
<!-- jsp依赖 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId>
</dependency>
配置文件application.properties需要添加
# 页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/jsp/ # 响应页面默认后缀 spring.mvc.view.suffix=.jsp
写一个controller测试类
@Controller public class testController { @RequestMapping("/index") public ModelAndView index(Map<String, Object> model){ // 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面 System.out.println("==============kaishi"); ModelAndView mav = new ModelAndView("index"); mav.addObject("time", new Date()); // model.put("message", this.hello); return mav; } }
@RequestMapping("/index") public String index2(Map<String, Object> model){ // 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面 System.out.println("==============kaishi"); model.put("time",new Date()); // model.put("message", this.hello); return "index"; }
上面两个测试类都可以返回index.jsp页面,所带的参数也都能够被页面接收到(具体原理将在之后的文档中
描述)。
在src文件夹下的main文件夹下添加WEB-INF文件夹,在WEB-INF文件夹下添加jsp文件夹(具体添加文件夹名称
可以根据个人习惯命名)。
文件格式
最后启动工程时不是通过启动类启动的而是通过maven的
spring-boot:run启动
通过启动类启动的话springboot将不会加载tomcat-embed-jasper,需要去除<scope>provided</scope>之后才能够启动,不过如果需要部署项目到tomcat上时需要加上<scope>provided</scope>,否则会有jar包冲突。