为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 jmustache 库获取模板参数?

如何使用 jmustache 库获取模板参数?

莫回无 2023-03-17 14:11:03
我正在尝试获取所有模板参数 - {{}} 中的参数名称。例如,对于此模板:{{pet}}追着{{toy}}我想要“宠物”和“玩具”我只能使用samskivert/jmustache 库,所以我不能使用不同的 mustache 库。有没有办法用 jmustache 做到这一点,这样我就不必用正则表达式解析字符串了?
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

Mustache.Visitor用于访问模板中的标签而不执行它


例子:


List<String> vars = new ArrayList<>();

Template tmpl = ... // compile your template

tmpl.visit(new Mustache.Visitor() {


  // I assume you don't care about the raw text or include directives

  public void visitText(String text) {}


  // You do care about variables, per your example

  public void visitVariable(String name) {vars.add("Variable: " + name); }


  // Also makes sense to visit nested templates.

  public boolean visitInclude(String name) { vars.add("Include: " + name); return true; }


  // I assume you also care about sections and inverted sections

  public boolean visitSection(String name) { vars.add("Section: " + name); return true; }


  public boolean visitInvertedSection(String name) { vars.add("Inverted Section: " + name); return true; }

});

Visitor从 1.15 版开始可用jmustache:


<groupId>com.samskivert</groupId>

<artifactId>jmustache</artifactId>

<version>1.15</version>


查看完整回答
反对 回复 2023-03-17
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

查看完整回答
反对 回复 2023-03-17
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信