我有一些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 of maps of ... of objects
模板并在模板中将其作为 POJO 访问(或者像在 JS 中访问 JSON 对象的字段),例如:
@args Map param
Hello @param.person.firstName.capFirst()!
Rythm 可以吗?
或者也许还有另一种方便的方法来解决这个问题?
最佳答案
尝试dynamic evaluation通过在表达式末尾添加 @
:
@args com.alibaba.fastjson.JSONObject param
Hello @param.person.firstName.capFirst()@!
参见http://fiddle.rythmengine.org/#/editor/ed3855c628144af287571cdf9857bcaa
关于java - 将 JSON 对象传递给 Rythm 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31476307/