如何配置springboot的jsp支持

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置springboot的jsp支持相关的知识,希望对你有一定的参考价值。

只是要打包成war包,然后在tomcat下跑:
spring-boot默认已经不再支持jsp视图展示,要支持jsp需要做一下工作:
1、application.yml中配置(这里也可以是properties配置文件):
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp

2、Application的服务启动类如下:
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
return application.sources(CommonApplication.class, PlatformApplication.class);


public static void main(String[] args) throws Exception
SpringApplication springApplication = new SpringApplication(CommonApplication.class, PlatformApplication.class);
springApplication.run(args);


3、引入jsp解析及jstl依赖,pom.xml:
<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>

4、配置maven项目打包方式为war包,不要使用main方法启动应用,一定要放到tomcat容器跑,即像没有使用spring-boot时在ide配置tomcat来跑应用。
参考技术A 这个跟spring mvc一样的啊,首先你看你的spring-mvc.xml 有没有配置defaultViewResolver,
<property name="prefix" value="/webpage/" />
<property name="suffix" value=".jsp" />

然后你在action的方法中如果1.标注了@ResponseBody,返回字符串的话是通过write输出到页面。2.没有标注这个,spring mvc会到配置的目录下 找相应的jsp。比如返回 "hello",它就在 webpage/目录下找hello.jsp。 返回 "user/login",它就会找 webpage/user/login.jsp
参考技术B 这个跟spring mvc一样的啊,首先你看你的spring-mvc.xml 有没有配置defaultViewResolver,
<property name="prefix" value="/webpage/" />
<property name="suffix" value=".jsp" />

然后你在action的方法中如果1.标注了@ResponseBody,返回字符串的话是通过write输出到页面。2.没有标注这个,spring mvc会到配置的目录下 找相应的jsp。比如返回 "hello",它就在 webpage/目录下找hello.jsp。 返回 "user/login",它就会找 webpage/user/login.jsp
参考技术C 1.增加对JSP支持
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.how2java</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>springboot</description>
<packaging>war</packaging>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>

</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- servlet依赖. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>

</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat的支持.-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>

</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. application.properties
在src/main/resources 目录下增加 application.properties文件,用于视图重定向jsp文件的位置
spring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp
3. 实例

@Controllerpublic class HelloController @RequestMapping("/hello") public String hello(Model m) m.addAttribute("now", DateFormat.getDateTimeInstance().format(new Date())); return "hello";
4. 这样子旧会直接在你返回的hell后面加一个.jsp然后跳到jsp界面

以上是关于如何配置springboot的jsp支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在SpringBoot中使用JSP

springboot配置对jsp页面的解析支持

SpringBoot和jsp之间的亲密关系-第二章

springboot 如何配置http跳转https(301)?

spring boot怎么创建jsp页面

spring boot怎么支持https