SpringBoot入门到精通(九):整合JSP和模板引擎Freemarker/Thymeleaf

整合JSP和模板引擎

  当客户通过前端页面提交请求后,我们以前是怎么做的?后端接收请求数据,处理请求,把响应结果交给模板引擎JSP,最后将渲染后的JSP转为HTML,响应给客户端显示。JSP的好处就是当我们查出一些数据转发到JSP页面以后,我们可以用JSP轻松实现数据的显示,及交互等。JSP支持非常强大的功能,包括能写Java代码。

  但是呢,我们现在的这种情况是,第一:SpringBoot这个项目首先是以jar的方式,不是war。第二:我们用的还是嵌入式的Tomcat(简化版的,即不支持JSP),所以呢,SpringBoot默认是不支持JSP的。如果我们直接用纯静态页面的方式,那给我们开发会带来非常大的麻烦,因此我们不得已选择,除了JSP外的其他模板引擎。

  模板引擎的作用就是,我们来写一个页面模板, 比如有些值,是动态的,我们在通过写一些表达式,来动态的显示这些值,就像我们早前常用的JSP。模板引擎的作用其实都一样,只不过呢,不同模板引擎之间,他们可能这个语法有点不一样。Spring Boot支持FreeMarker、Groovy、Thymeleaf和Mustache四种模板解析引擎,官方推荐使用Thymeleaf。

  对于模版引擎而言,SpringBoot默认存放模版文件的路径为src/main/resources/templates,当然也可以通过配置文件进行修改的。

  当然了,使用JSP也是可以的,但官方已经不建议使用JSP,本文也会讲解下SpringBootJSP的支持的,因为有很多老的项目还是使用JSP模板的居多。(不推荐使用JSP也是因为JSP需要编译转换,而其他模板引擎则无需编译转换)

1.SpringBoot整合Java Server Page

  JSP(全称Java Server Page),是web开发最早期的模板引擎产品,随着时代的更新,已渐渐老去,当然目前还未完全退出市场。SpringBoot微服务架构,所有项目都是以jar文件方式打包部署,嵌入式的Tomcat(简化版,不支持JSP),所以SpringBoot默认是不支持JSP的,那么如果想要整合JSP,就需要独立引入整合依赖,和基础配置。

   SpringBoot默认存放模版文件的路径为src/main/resources/templates,但由于SpringBoot默认是不支持JSP的,所以我们不能将JSP文件放在templates目录下。

  1. 引入JSP核心引擎
     1 <!-- SpringBoot整合JSP:SpringBoot默认整合Tomcat,所以不需要指定JSP版本 -->
     2 <dependency>
     3     <groupId>org.apache.tomcat.embed</groupId>
     4     <artifactId>tomcat-embed-jasper</artifactId>
     5 </dependency>
     6 <!-- JSP依赖JSTL -->
     7 <dependency>
     8     <groupId>javax.servlet</groupId>
     9     <artifactId>jstl</artifactId>
    10 </dependency>
    
  2. 创建JSP整合目录webapp以及WEB-INF
    在Java,resources同级目录下新建webapp目录及子目录WEB-INF

     至于web.xml配置文件,是可要可不要了。

  3. 修改yml文件,配置MVC试图解析器
    1 spring:
    2   # 配置整合JSP
    3   mvc:
    4     view:
    5       # 配置视图解析器前缀
    6       prefix: /WEB-INF/
    7       # 配置视图解析器后缀
    8       suffix: .jsp
    
  4. 创建Controller跳转访问JSP
    因为是返回页面 所以不能是@RestController
    
    // @RestController  该注解会将任何返回值都作为JSON暴露,不经过视图解析器  
    @Controller    // SpringBoot整合JSP,不能使用@RestController
    public class PersonController {
        
        @RequestMapping({"/indexJSP","/listJSP"})
        public String getIndexJSP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值