zoukankan      html  css  js  c++  java
  • springboot整合thymeleaf手动渲染

    Thymeleaf手动渲染

    为提高页面访问速度,可缓存html页面,客户端请求从缓存获取,获取不到再手动渲染

    在spring4下

    @Autowired
        ThymeleafViewResolver thymeleafViewResolver;
        
        @Autowired
        ApplicationContext applicationContext;
    public String list(HttpServletRequest request, HttpServletResponse response, Model model) {
            
            //取缓存
            String html = redisService.get("goods_list", String.class);
            if(!StringUtils.isEmpty(html)) {
                return html;
            }
            //获取商品列表
            List<GoodsVo> goodsList = goodsService.listGoodsVo();
            model.addAttribute("goodsList", goodsList);
            //手动渲染
            SpringWebContext ctx = new SpringWebContext(request,response,
                    request.getServletContext(),request.getLocale(), model.asMap(), applicationContext );
            html = thymeleafViewResolver.getTemplateEngine().process("goods_list", ctx);
            //写缓存
            if(!StringUtils.isEmpty(html)) {
                redisService.set("goods_list", html);
            }
            return html;
    
    
     @Autowired
        private ThymeleafViewResolver thymeleafViewResolver;
    
    SpringWebContext ctx = new SpringWebContext(request, response, request.getServletContext(), request.getLocale(),
                    model.asMap(), applicationContext);
    // 手动渲染
    html = thymeleafViewResolver.getTemplateEngine().process("这里写html页面名称", ctx);

    在spring5

    @Autowired
        ThymeleafViewResolver thymeleafViewResolver;
    model.addAttribute("user", user);
            //查询商品列表
            List<GoodsVo> goodsList = goodsService.listGoodsVo();
            model.addAttribute("goodsList", goodsList);
            String html = redisService.get(GoodsKey.getGoodsList, "", String.class);
            if (!StringUtils.isEmpty(html)){
                return html;
            }
    
    
            WebContext ctx = new WebContext(request,response,request.getServletContext(),
                    request.getLocale(),model.asMap());
            thymeleafViewResolver.getTemplateEngine().process("goods_list",ctx);
    
    
            return "goods_list";
    
    
     @Autowired
        private ThymeleafViewResolver thymeleafViewResolver;
    
    
    WebContext ctx = new WebContext(request,response,request.getServletContext(),request.getLocale(),model.asMap());
    // 手动渲染
    html = thymeleafViewResolver.getTemplateEngine().process("这里写html页面名称", ctx);
  • 相关阅读:
    【数位dp】Beautiful Numbers @2018acm上海大都会赛J
    【状压dp】Trie 树 @中山纪念中学20170304
    两个给点染色的问题-树上染色与图上染色
    【贪心】经营与开发 @upc_exam_5500
    【二分+拓扑排序】Milking Order @USACO 2018 US Open Contest, Gold/upc_exam_6348
    【并查集】Connectivity @ABC049&amp;ARC065/upcexam6492
    【倍增】T-shirt @2018acm徐州邀请赛 I
    Sparse Coding: Autoencoder Interpretation
    Sparse Coding
    Pooling
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/11653726.html
Copyright © 2011-2022 走看看