首页 > 其他分享 >jmte 模版引擎

jmte 模版引擎

时间:2022-10-07 17:32:07浏览次数:64  
标签:String jmte 模版 render 引擎 user context new

jmte 是一个简单,但是高效的模版引擎,graylog 对于通知的处理就使用了此模版引擎,使用简单,而且比较灵活

参考使用

  • 流程
    创建引擎,注册类型渲染(不是必须的),使用tranform 进行渲染处理
  • 参考代码MyRenderDemo
MyRenderDemo

public class MyRenderDemo {
static Engine engine ;
static {
engine = Engine.createEngine();
engine.registerRenderer(User.class,new MyRender());
}
public static <T> String render(String template, Map<String,Object> context) {
return engine.transform(template,context);
}
}
MyRender

public class MyRender implements Renderer<User> {
@Override
public String render(User o, Locale locale, Map model) {
return String.format("%d----------%s------%s",o.getAge(),o.getName(),o.getExtend());
}
}
main 入口

String template = "${user.age}===${user.name}====${user.extend.type} ${user}";
String template2 = "{\n" +
"\"nane\":\"${user.name}\",\n" +
"\"age\":${user.age},\n" +
" \"extend\":\"${user.extend}\"\n" +
"}";
String template3 ="${foreach user.conf conf}\n" +
" <em>${conf.appId}</em>\n" +
" <em>${conf.version}</em>\n" +
"${end}";
Map<String,Object> extendMsg = new HashMap<>();
extendMsg.put("type","local message");
Map<String,Object> context = new HashMap<>();
User user = new User();
user.setExtend(extendMsg);
user.setAge(333);
user.setConf(Arrays.asList(new Conf("ddd","333"),new Conf("rrrr","5555")));
user.setName("33333");
context.put("user",user);
String result = MyRenderDemo.render(template,context);
System.out.println(result);
String result2 = MyRenderDemo.render(template2,context);
System.out.println(result2);
String result3 = MyRenderDemo.render(template3,context);
System.out.println(result3);
  • 效果

jmte 模版引擎_模版引擎

 

 

说明

jmte 使用简单,支持的基本逻辑操作还是不少的,比如if foreach, 而且支持比较强大的自定义处理,对于cms 系统或者营销系统来说都是不错的选择

参考资料

​https://www.tinymediamanager.org/docs/jmte​​​
​​​https://github.com/DJCordhose/jmte​

标签:String,jmte,模版,render,引擎,user,context,new
From: https://blog.51cto.com/rongfengliang/5734744

相关文章

  • 传奇龙族引擎三端插件使用说明
    ​1.解压龙族三端工具包,打开里面的插件文件夹将插件放到游戏版本Mir200里面把插件**“MultiEndEngine.dll”和“MultiEndEngine.Jdk”**复制到你的游戏版本MirServer......
  • orioledb pg 存储引擎
    orioledb是社区开发的一个新的pg存储引擎,主要是为了解决现在pg的一些问题,官方共享的一个ppt还是值得学习的(以下链接中)以下是一个简单的学习使用orioledb特性支持现代......
  • AI与物联网架构:从智能引擎到物联网平台 节选
    一种是大数据底层技术,指的就是各种大数据计算框架、存储系统、SQL引擎等等,这些技术比较通用,经过十几年的优胜劣汰,主流的技术产品相对比较集中,主要就是我上篇专栏讨论的​......
  • 理解Docker——深入引擎室
    本文主要内容Docker的架构在用户的宿主机上追溯Docker的内部结构使用DockerHub查找和下载镜像设置自己的Docker注册中心(registry)实现容器间的相互通信掌握Docker的架构是更......
  • MySQL存储引擎详解(一)-InnoDB架构
    前言目前MySQL8.x版本数据库已经支持了很多存储引擎了,但是一般我们常用的就几种,容易形成思维固化不会轻易采取其他存储引擎,从而错失很多优化存储的功能。因此对现支持的九种......
  • MySQL存储引擎详解(一)-InnoDB架构
    前言目前MySQL8.x版本数据库已经支持了很多存储引擎了,但是一般我们常用的就几种,容易形成思维固化不会轻易采取其他存储引擎,从而错失很多优化存储的功能。因此对现支持的九种......
  • MYSQL的引擎和锁
    MYSQL的引擎和锁这里介绍常用MySQL引擎,分别是MyISAM、InnoDB、Memory和CSV。MySAM是MySQL5.5.8版本之前的默认引擎,在MySQL5.5.8+后的默认存储引擎InnoDB。采用表空......
  • 如何快速上手Easy2D这款引擎?我的想法是...
    当我们学完C++,往往都会好奇的是,C++是怎么做成游戏的?你看市面上有很多游戏都是C++做的C++完美的凭借着运行速度之快让各路的程序猿们爱不释手但有着这个优点的同时,难度大......
  • 引擎之旅 Chapter.4 日志系统
    关于近段时间为何没有更新的解释:Findanewjob.目录引言日志语句的分类控制台窗体和VSOutputTab的日志打印存储至特定的文件中展示堆栈信息引言一般来说,一个优质......
  • Elastic搜索引擎8.4+最新记录
    ********一、新增*******添加数据/索引(index数据库)/类型(type表)/文档(document记录)POST/test/_doc/1{"name":"刘备","age":27,"desc":"有志者事竟成"}P......