博主在使用sring-boot跳转HTML页面后,因为好奇心就想跳转到JSP页面,就在网上搜相关信息,结果不是跳转500错误就是下载JSP文件。各类坑啊,在博主跳了N多坑后,终于跳转JSP页面成功。故写此文章便于使用到的小伙伴再也不进坑。html
一、新建spring-boot项目 目录结构以下java
二、新建TestController.java文件,内容以下web
package com.example.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestController { @RequestMapping("/index") public String index(){ return "index"; } }
三、新建webapp文件夹,与resources同级。spring
四、新建JSP页面,此时发现New里面没有JSP页面。须要设置一下才会出现哟。apache
五、点击File->Project Structure...tomcat
六、点击Modules->绿色加号->Webapp
七、双击此处webapp
八、选择刚刚新建的webapp,点击OK,继续OK。jsp
九、此时webapp上有个蓝色圆点表示设置成功。ide
十、在webapp上单击右键New,此时出现JSP文件。
十一、新建index.jsp
十二、index.jsp内容
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1 style="color: red">Hello World</h1> </body> </html>
1三、新建MyWebAppConfigurer类
1四、MyWebAppConfigurer内容
package com.example.controller; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter { @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/"); viewResolver.setSuffix(".jsp"); viewResolver.setViewClass(JstlView.class); return viewResolver; } }
1五、在pom.xml中加入依赖JAR包
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>7.0.59</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
1六、启动Application,访问127.0.0.1:8080/index
1七、跳转完成。
以上就是spring-boot跳转JSP页面的过程,下面说说跳转遇到的坑。
1、缺乏依赖JAR包
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
跳转失败
提示还算明确,缺乏jstl标签
2、使用provided版本JSP解析器JAR包,
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
下载JSP文件
改成
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>7.0.59</version> </dependency>
问题解决,至于为何provided版本的不行,感兴趣的小伙伴能够深究下,留言给我。