美文网首页码农的世界互联网科技程序员
Spring boot学习 (六) 之响应jsp页面

Spring boot学习 (六) 之响应jsp页面

作者: xml_ | 来源:发表于2018-11-23 14:41 被阅读14次

前言

spring-boot 支持多种模版引擎包括:

  • FreeMarker
  • Groovy
  • Thymeleaf
  • Velocity
  • Jsp
    其中官方是推荐使用Thymeleaf,而Jsp官方不推荐,原因是spring-boot创建的项目在src/main/resources 下有个templates 目录用于放模板文件,而jsp页面是放在webapp目录下,spirng-boot没有这样的目录。但是企业用jsp用的很多,所以还是可以学习一下的。

正文

pom.xml中添加依赖
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <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>

application.properies中加入如下配置,指定jsp页面的目录和后缀
#配置要获取的信息
com.mlin.hello=hello,mlin
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp
新建文件UserController.java,添加如下代码:
@Controller
public class UserController {

    @Value("${com.mlin.hello}")
    private  String hello; //获取配置文件的信息:mlin,hello

    @RequestMapping("/index")
    public ModelAndView index(){
        // 默认会去寻找配置文件配置的 spring.view.prefix 目录下的页面
        // 即/WEB-INF/jsp/index.jsp
        ModelAndView modelAndView = new ModelAndView("index");
        modelAndView.addObject("msg",this.hello);
        return modelAndView;
    }
}
src/main 下面创建 webapp/WEB-INF/jsp 目录存放jsp页面,新建index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Spring Boot jsp Sample</title>
</head>
<body>
    Message: ${msg}
</body>
</html>
pom.xml文件中的jar改成war,这样才可以支持jsp
<packaging>war</packaging>
启动服务,浏览器输入:http://localhost:8080/index
1.png

总结

在实践过程中发现如下问题

当引入的依赖tomcat-embed-jasper指定范围是provide的时候,右键启动类一直报404找不到页面错误,不指定则运行正常。寻找资料发现前辈们的总结如下:

指定provided时:
  • 右键运行启动类,访问页面报404错误
  • 使用spring-boot:run运行正常
  • 打包成jar,通过 java -jar xxxxx.jar 运行报错
  • 打包成war,通过 java -jar xxxxx.war 运行正常
不指定provided时
  • 右键运行启动类,访问页面正常
  • spring-boot:run运行 访问页面正常
  • 打包成jar,通过 java -jar xxxxx.jar 运行报错
  • 打包成war,通过 java -jar xxxxx.war 运行正常

原创作者:梦凌小样
作品链接:https://www.jianshu.com/p/891c3e401e2f【原创不易,转载请注明出处,感谢理解】
一位爱生活,爱创作,爱分享,爱自己的90后女程序员一枚,记录工作中的点点滴滴,一起学习,共同进步,期待能和优秀的您交上朋友

相关文章

网友评论

  • Alt丶:前后端分离怎么样!
    xml_:@二锅头丶 我感觉和spring mvc没差,更多的是约定大于配置,减少了冗余代码

本文标题:Spring boot学习 (六) 之响应jsp页面

本文链接:https://www.haomeiwen.com/subject/isjjqqtx.html