栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

java:jinjava学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java:jinjava学习

java:jinjava学习

1 介绍

jinjava的效果,类似于python的jinja2,效果一致,且模板中的语法,还是使用的python的语法,十分强大。

2 使用

2.1 依赖配置


    com.hubspot.jinjava
    jinjava
    2.6.0

2.2 具体使用


src/main/resources目录下新建模板文件:




        {% for k,v in stu.items() %}
            
        {% endfor %}


可以看到,在模板文件test.xml中,使用的模板语法是python的,帅气。

MyJinJava:

package com.xiaoxu.jinja;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.hubspot.jinjava.Jinjava;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;


public class MyJinJava {
    public static void main(String[] args) throws IOException {
        MyJinJava m=new MyJinJava();
        m.createMuBan();
    }
    public void createMuBan() throws IOException {
        Map m=new HashMap(){{
            put("apple","12");
            put("name","xiaoxu");
            put("price","19.9");
        }};

        List l= Arrays.asList(1,6,9);

        Map stu= ImmutableMap.builder()
                .put("try","first")
                .put("use","second")
                .put("push","third").build();

        List book= ImmutableList.builder()
                .add("python入门")
                .add("java精通")
                .add("vue熟悉").build();

        Map context= Maps.newHashMap();

        //key,就是模板中用的变量
        context.put("stu",stu);
        context.put("2",book);
        context.put("3",l);
        context.put("4",m);

        //构造jinjava对象,读取资源,并呈现页面
        Jinjava jinjava=new Jinjava();
        File f=new File("src/main/resources/test.xml");
        Scanner scanner=new Scanner(new FileInputStream(f),"UTF-8");
        //String template =scanner.useDelimiter("XIAOXU").next(); scanner.next():默认遇到空格会分割,只展示分隔的第一段
        //希望全部展示,使用文本不会出现的字符串来分割即可
        String template =scanner.useDelimiter("\A").next();
        System.out.println("初始文本:");
        System.out.println(template);
        System.out.println();

        String render_template = jinjava.render(template,context);
        System.out.println("修改后文本:");
        System.out.println(render_template);
    }
}

Scanner用于读取src/main/resources目录下的文件,执行main方法,效果如下:

初始文本:



        {% for k,v in stu.items() %}
            
        {% endfor %}



修改后文本:



        
            
        
            
        
            
        


效果同python版的jinja2一致,厉害了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664913.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号