【问题标题】:Passing JSON Object to Rythm template将 JSON 对象传递给节奏模板
【发布时间】:2015-07-17 12:53:08
【问题描述】:

我有一些Rythm 模板注册表,需要开发将由客户端模板选择呈现的代码(例如,客户端将通过 http 调用我的代码并提供模板名称和参数)。 由于调用是由 http 执行的 - 在我这端,我将客户端提供的参数作为 JSON(我什至没有代表用户输入的类),可能会解析为 map of maps of maps...。事实证明,在模板中使用这样的结构并不方便:我所能做的就是使用Map::get(key) 方法并且只有1级嵌套:

由于param.get("person") 导致的下一个模板出错应该是Object 并且没有get(key) 方法:

@args Map<String, Object> param
Hello @param.get("person").get("firstName").capFirst()!

我记得有些模板引擎支持 map-as-object 语法,例如将map of maps of ... of objects 传递给模板并在模板中以 POJO 的形式访问它(或者像在 JS 中访问 JSON 对象的字段一样),例如:

@args Map param
Hello @param.person.firstName.capFirst()!

Rythm 可以吗?

或者也许有另一种方便的方法来解决这个问题?

【问题讨论】:

    标签: java template-engine rythm


    【解决方案1】:

    通过在表达式末尾添加@ 来尝试dynamic evaluation

    @args com.alibaba.fastjson.JSONObject param
    Hello @param.person.firstName.capFirst()@!
    

    http://fiddle.rythmengine.org/#/editor/ed3855c628144af287571cdf9857bcaa

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多