SpringBoot整合Jsp(6)
简介:
官方不推荐使用jsp作为页面,我们可以使用其他的模板引擎,比如 Thymeleaf 和 freemarker,官方主推的是Thymeleaf。但是目前来说,很多项目的页面还是用的jsp.而且很多现成的项目用的jsp页面,扒过来就能用,当然如果时间允许的情况,还是不建议大家使用jsp,而是采用官方推荐的模板。
springboot的框架是不建议使用jsp页面的但是, 还是可以整合的所以我就把jsp和freemarker 两者都整合一下实现了一下
一: SpringBoot Jsp
整合Jsp 就是坑啊 整的我都想吐了 当你看到这篇文章的时候恭喜你入坑了接下来带你出坑
此文主要解决以下两个问题(如果没有符合各位实际的问题的话,也没必要继续往后读了):
1、未使用Maven打包前:Spring Boot 整合JSP后,前端访问(通过Controller访问JSP)时变成下载文件。
2、使用Maven打包后:打包jar或war后独立运行,前端访问不到JSP页面(但是Controller返回其他数据正常,JSP就是不行);或者是访问到了JSP页面,但是JSP引用的静态资源无法访问。
我使用的版本
同时在pom文件设置项目打包为war:<packaging>war</packaging>
添加tomcat支持和JSTL标签库
<!--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.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
第二步在application.properties文件中添加前缀和后缀配置
#页面默认前缀目录 默认在webapp下有别的文件夹可以,以文件夹/往下加
spring.mvc.view.prefix=/
#页面默认后缀目录
spring.mvc.view.suffix=.jsp
第三步.建立webapp文件夹当项目设为war就可以生成了
1)
2)注意图下(5)是生成WEB-INF下的web.xml
3)目录
哪就写个jsp页面和方法测试一下
package com.xxx.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by Administrator on 2019\3\13 0013.
*/
@Controller
public class JspController {
@GetMapping("ok")
public String index(Model model){
model.addAttribute("ttt","整合JSP的大坑..........");
return "exin";
}
}
jsp页面
结果:
我也是简单的整合了一下 :
新手菜鸟在路上 !!!!!