数据渲染器

接口

    /**
     * @param template 待渲染的模板
     * @param objects  渲染参数,支持{@link java.util.function.Supplier}
     * @return 渲染后的字符串
     */
    public static String render(String template, Object... objects)

扩展

实现org.coodex.util.RenderService,放到SPI中,选择策略为基于模板的选择,如SPI中针对当前模板无可用服务时,则原样返回模板。

已有的实现

  • 基于java.text.MessageFormat的实现,开箱即用,支持Supplier。

示例:

    System.out.println(Renderer.render(
            "您好,{0}。今天是{1,date,yyyy-MM-dd},当前时间{1,time,HH:mm:ss},您的服务号是{2,number,000}。祝您生活愉快。",
            "Davidoff", new Date(), 3));
您好,Davidoff。今天是2020-05-10,当前时间09:27:57,您的服务号是003。祝您生活愉快。
  • 基于freemarker的实现,渲染变量从o1开始顺序命名,支持Supplier。
    <dependency>
        <groupId>org.coodex</groupId>
        <artifactId>coodex-renderer-freemarker</artifactId>
        <version>${coodex.libraries.version}</version>
    </dependency>

使用示例:

    System.out.println(Renderer.render("现在时刻是 ${o1}",Common.now()));
    Map<String,Object> map = new HashMap<>();
    map.put("test","test");
    System.out.println(Renderer.render("测试:${o1.test}", map));
    System.out.println(Renderer.render("测试:${o2!\"xxx\"}", map));
现在时刻是 2020-05-10 10:45:41
测试:test
测试:xxx
© coodex.org 2014-2020 all right reserved,powered by GitbookFile Modify: 2020-05-11 14:33:51

results matching ""

    No results matching ""