pom依赖如下 :
下面这几个依赖,决定你本地开发时候是没问题了,这时spring-boot可以解析jsp了
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- 标签库引入 -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
配置页面路由:
application.yml文件配置如下
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
项目路径如下:
spring-boot中默认是没有/WEB-INF文件夹的所以我们需要自己创建。我们需要在/src/main目录下创建一个和/java,/resources平级的目录/webapp。然后再webapp下面创建WEB-INF/views。我们把jsp放入views中,这样spring-boot就可以顺利的查找到jsp了。
测试controller接口:
package com.test.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/user")
public class UserController {
/**
* 访问hello.jsp页面,该页面位置在src/main/webapp/WEB-INF/views/hello.jsp
*
* @return Object
*/
@RequestMapping(value = "/login")
public Object login(HttpServletRequest request, HttpServletResponse response) {
return "hello";
}
}
访问请求为(我用的是80端口,所以可以不写端口):
http://127.0.0.1/user/login
我们再把工程打成jar包拿到Linux服务器上运行,还需要多做一个配置,否则,我们在用IDEA打包的时候,无法把jsp文件打入jar包中
配置如下:
<resources>
<resource>
<directory>src/main/webapp</directory>
<!--注意此次必须要放在此目录下才能被访问到 -->
<targetPath>/</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>