java - 将 JSON 对象传递给 Rythm 模板

标签 java template-engine rythm

我有一些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/

相关文章:

java - 有什么方法可以根据某些条件递归调用 Rythm 模板吗?

java - RythmEngine 和 TemplateClassManager 堆的最大对象 : memory leak problems

java - 在 Rythm 中使用另一个变量设置一个变量

java - 两个 OnClick 监听器,两个按钮。 (已保存的首选项)

java - 使用 Java processbuilder 关闭 HDMI 电视

whitespace - 如何禁用 Jinja2 注释后的空格修剪?

jquery - 使用 handlebars.js 在下拉列表中设置选定值

java - 在 gradle 的构建任务中重新排序编译任务

java - Tomcat 8 与 Maven 的集成

javascript - Express 和 Jade 中内联 jade.render() ?