[Spring boot] web应用返回jsp页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Spring boot] web应用返回jsp页面相关的知识,希望对你有一定的参考价值。

同事创建了一个spring boot项目,上传到svn。需要我来写个页面。下载下来后,始终无法实现在Controller方法中配置直接返回jsp页面。

郁闷了一下午,终于搞定了问题。在此记录一下。

 

目标:在Controller方法中配置直接返回jsp页面

 

项目中添加src/main/webapp文件夹,没什么好说的。

下面详细介绍@Controller注解和@RestController注解的不同实现方法。

 

@Controller注解

1. application.properties文件中配置

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.view.prefix:/pages/ #指向jsp文件位置:src/main/webapp/pages

# 配置jsp文件的后缀
spring.view.suffix:.jsp

2. Controller文件中配置

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ExampleController {

    @RequestMapping(value = "/initpage", method = RequestMethod.GET)
    public String doView() {
        return "index"; // 可访问到:src/main/webapp/pages/index.jsp
    }
}

3. 使用Application [main]方法启动

4. 访问url,访问到jsp页面

http://localhost:8080/initpage

 

@RestController注解

1. application.properties文件中配置

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.mvc.view.prefix:/pages/  #指向jsp文件位置:src/main/webapp/pages    注意啦!!!!!属性名称和@Controller的配置不一样,多了【mvc】

# 配置jsp文件的后缀
spring.mvc.view.suffix:.jsp    # 同样多了【mvc】哟

2. Controller文件中配置,同样可访问到:src/main/webapp/pages/index.jsp

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
public class OvalAlarmController {

    @RequestMapping(value = "/initpage", method = RequestMethod.GET)
    public ModelAndView doView() {
        ModelAndView mv = new ModelAndView("index"); 
        return mv;
    }
}

3. 使用Application [main]方法启动

4. 访问url,访问到jsp页面

http://localhost:8080/initpage

 

 

还遇到一个问题:

  spring boot直接返回jsp文件下载。

原因:

  jsp文件没有被解析,pom.xml文件中只需添加如下配置。ok,问题解决。

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>7.0.59</version>
    </dependency>

 





以上是关于[Spring boot] web应用返回jsp页面的主要内容,如果未能解决你的问题,请参考以下文章

04《Spring Boot 入门教程》使用模板引擎开发 Web 项目

Spring Boot干货系列:开发Web应用JSP篇

JSP 文件未在 Spring Boot Web 应用程序中呈现

Spring Boot基础教程8-web应用开发-模板引擎jsp

在基于 SPRING-BOOT JSP 的 web 应用程序中嵌入 VAADIN UI 的 HTTP 405

如何在 Spring Boot 应用程序中预编译 jsp?