[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.mvc.view.prefix:/pages/ #指向jsp文件位置:src/main/webapp/pages
# 配置jsp文件的后缀
spring.mvc.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 # 配置jsp文件的后缀 spring.mvc.view.suffix:.jsp
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
一个问题:
按上面流程配置,还是访问不到页面怎么办?
可以尝试将application.properties的配置做如下修改,原因么,我也不晓得...
# 配置jsp文件的位置,默认位置为:src/main/webapp spring.view.prefix:/pages/ # 看到区别了么,此处去掉的[.mvc] # 配置jsp文件的后缀 spring.view.suffix:.jsp #此处也去掉了[.mvc]
我自己建的spring boot(版本较旧),按上面的配置,运行ok,同事创建的spring boot(版本较新),必须加上[.mvc]才能运行ok.
我的spring boot的pom.xml截图(要配置成:spring.view.prefix):


同事的spring boot的pom.xml截图(要配置成:spring.mvc.view.prefix):


另一个问题:
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页面的更多相关文章
- Spring Boot 2.0 返回JSP页面实战
1. 模板引擎JSP的限制 在开始之前呢,我觉得我们有必要先去了解下 Spring Boot 2.0 官方文档中提到的如下内容: 模板引擎 除了REST Web服务之外,还可以使用Spring MVC ...
- Spring Boot Web项目整合jsp页面访问
这个内容就是实操过程中各种访问不了jsp页面,各种尝试后的解决方案吧.可能不是最优的,但是目前能解决项目中的一些问题.之前觉得没有什么问题直接可以操作的,没想到在这部分还是耗时了. 开发工具idea2 ...
- (6)Spring Boot web开发 --- 错误处理页面
文章目录 处理时间(`Date`)类型 thymeleaf 页面拼接字符串 映射路径占位符 使用 put.delete 方法 错误处理机制 处理时间(Date)类型 Spring Boot 进行参数绑 ...
- Spring Boot Web 自定义返回值(通用)
在项目下新建common.entity包,包中包含两个文件Result数据类,ResultCode接口文件 Result.class @Data @NoArgsConstructor public c ...
- 转-spring boot web相关配置
spring boot web相关配置 80436 spring boot集成了servlet容器,当我们在pom文件中增加spring-boot-starter-web的maven依赖时,不做任何w ...
- Springboot 系列(七)Spring Boot web 开发之异常错误处理机制剖析
前言 相信大家在刚开始体验 Springboot 的时候一定会经常碰到这个页面,也就是访问一个不存在的页面的默认返回页面. 如果是其他客户端请求,如接口测试工具,会默认返回JSON数据. { &quo ...
- Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎
前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的 ...
- spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500:no convertter for return value of type
问题描述 spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json ...
- 在 Spring Boot 2 中致敬 JSP
新冠病毒
随机推荐
- js jquery 验证写法
<?php header("Content-type: text/html; charset=utf-8"); ?> <script src="jque ...
- python高级编程 编写一个包1
#目的是:编写,发行python包可重复过程"""1:是缩短开始真正工作之前所需要的设置时间,也就是提供模板2:提供编写包的标准化方法3:简化测试驱动开发方法的使用4:为 ...
- Linux下用命令格式化U盘
1.找到U盘位置(已挂载) sudo fdisk -l 如图,我的在/dev/sdc4 2.格式化U盘 sudo mkfs -t vfat /dev/sdc4 -t 后面是格式化为哪种文件系统格式,v ...
- 行人检測之HOG特征(Histograms of Oriented Gradients)
之前的文章行人计数.计次提到HOG特征这个概念,这两天看了一下原版的论文,了解了一下HOG特征的原理,并依据自己的理解将这种方法的流程写了下来,假设有不正确的地方欢迎指正. HOG(Histogram ...
- CDN云主机与传统虚拟主机功能对比
CDN云主机与传统虚拟主机功能对比 传统的虚拟主机都是单台服务器,一旦机器硬件损坏.IP被封.机房网络故障等,都将导致网站不能访问,严重的情况数据还无法及时取回,即使想换一家服务商也因为没有数据而无能 ...
- Linux 挂载命令 --mount
1.挂载光盘命令 mount : mount [-t vfstype] [-o options] device dir mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点 -t ...
- asp.net mvc输出自定义404等错误页面,非302跳转
朋友问到一个问题,如何输出自定义错误页面,不使用302跳转.当前页面地址不能改变. 还要执行一些代码等,生成一些错误信息,方便用户提交反馈. 500错误,mvc框架已经有现成解决方法: filte ...
- PHP学习笔记三十【final】
<?php //final不能去修饰属性(变量) //如果希望类不希望被继承就可以使用final关键字 final class Person() { public function sayHi( ...
- PureLayout(轻量级自动布局)
直接整理用法 1.设置高度宽度 [view1 autoSetDimension:ALDimensionHeight toSize:70.0]; [view1 autoSetDimension:ALDi ...
- java 自动装箱、自动拆箱
/** * @描述:自动装箱,自动拆箱 * @date 2017年1月10日下午1:30:01 * 结论:包装类的"=="运算在不遇到算术运算的情况下不会自动拆箱, * 以及他们的 ...