springboot本身并不支持jsp,官方建议不使用jsp,而是将资源模板或静态文件放在resource下的static和template的文件夹下;
故要使用jsp,就需要引入一些包,使用tomcat来支持jsp;
1、pom.xml
先修改打包方式为war包,默认的是jar包
导入以下几个jar包,
<!-- 支持jsp -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- <scope>provided</scope>-->
</dependency>
<!-- JSTL (JSP standard Tag Library) JSP 标准标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
有的资料上说还要导入一个包,但是我没有导入这个jar也是成功的,你可以看你情况,若失败就可以导入这个jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2、导包完成后,修改你的配置文件,我的是yml格式的,
#支持jsp
spring:
mvc:
view:
prefix: /WEB-INF/
suffix: .jsp
prefix确定jsp的文件路径,你可以改到你的路径下;
suffix 是指定jsp文件的后缀;
3、开发你的jsp文件,并放到你配置文件配置的目录下,这是我的目录结构,在main文件下(java同级目录),新建你指定的路径,我的是 webapp---》WEB-INF---》editor.jsp,若上一步你的是/WEB-INF/jsp/ ,那这里就是 webapp---》WEB-INF---》jsp---》editor.jsp了。
4、开发你的controller(我用controller开发,若你用servlet,可以参考其他资料,但是之前的配置是不变的)
@Controller
public class TestController {
@RequestMapping("/test")
public String test(HttpServletRequest request, HttpServletResponse response) {
return "editor";
}
}
这里划重点了,记住注解要是@Controller 而不是常用的@RestController,因为后者会默认返回json数据,
RestController = Controller + responseBody
至此这样配置完成后,重启你的项目就可以了。直接启动application类就可以了。
以下是给jsp页面传值,我采用的是 Request.setAttribute(name, value);
controller在返回的时候返回 字符串就可以了;
若你像使用其他方式,例如ModelAndView,请参考
https://www.cnblogs.com/xuange306/p/6398090.html
这里写的很详细了,大牛。。。