【Thymeleaf-视图模板技术简介】

Thymeleaf-视图模板技术

一、介绍

简介:SpringBoot官方推荐使用的视图模板技术,和SpringBoot完美整合

执行流程:

image-20220705223257940

二、相关环境

  1. 配置环境

    image-20220727165901988

  2. 物理视图=视图前缀+逻辑视图+视图后缀

    • 在xml中添加配置

      <!-- 在上下文参数中配置视图前缀和视图后缀 -->
      <context-param>
          <param-name>view-prefix</param-name>
          <!-- / 代表web目录 -->
          <param-value>/</param-value>
      </context-param>
      <context-param>
          <param-name>view-suffix</param-name>
          <!-- 代表后缀 -->
          <param-value>.html</param-value>
      </context-param>
      

三、使用方法

  1. 新建一个Servlet类,ViewBaseServlet

    public class ViewBaseServlet extends HttpServlet {
    
        private TemplateEngine templateEngine;
    
        @Override
        public void init() throws ServletException {
            // 1.获取ServletContext对象
            ServletContext servletContext = this.getServletContext();
            // 2.创建Thymeleaf解析器对象
            ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext);
            // 3.给解析器对象设置参数
            // ①HTML是默认模式,明确设置是为了代码更容易理解
            templateResolver.setTemplateMode(TemplateMode.HTML);
    
            // ②设置前缀
            String viewPrefix = servletContext.getInitParameter("view-prefix");
    
            templateResolver.setPrefix(viewPrefix);
    
            // ③设置后缀
            String viewSuffix = servletContext.getInitParameter("view-suffix");
    
            templateResolver.setSuffix(viewSuffix);
    
            // ④设置缓存过期时间(毫秒)
            templateResolver.setCacheTTLMs(60000L);
    
            // ⑤设置是否缓存
            templateResolver.setCacheable(true);
    
            // ⑥设置服务器端编码方式
            templateResolver.setCharacterEncoding("utf-8");
    
            // 4.创建模板引擎对象
            templateEngine = new TemplateEngine();
    
            // 5.给模板引擎对象设置模板解析器
            templateEngine.setTemplateResolver(templateResolver);
    
        }
    
        protected void processTemplate(String templateName, HttpServletRequest req, HttpServletResponse resp) throws IOException {
            // 1.设置响应体内容类型和字符集
            resp.setContentType("text/html;charset=UTF-8");
            // 2.创建WebContext对象
            WebContext webContext = new WebContext(req, resp, getServletContext());
            // 3.处理模板数据
            templateEngine.process(templateName, webContext, resp.getWriter());
        }
    }
    
  2. 添加我们自己的Servlet继承 ViewBaseServlet

    image-20220727202748008

    image-20220727202544679

  3. 前端页面处理(取代jsp的对应功能)

    引入image-20220727203951385

    image-20220727203923228

    • 具体API可看:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值