将JSON对象传递给Rythm模板

时间:2015-07-17 12:53:09

标签: 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-as-object语法,例如将map of maps of ... of objects传递给模板并在模板中将其作为POJO访问(或者像访问JS中的JSON对象&#39; s字段一样),以获得exapmle:

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

Rythm可以吗?

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

1 个答案:

答案 0 :(得分:1)

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

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

请参阅http://fiddle.rythmengine.org/#/editor/ed3855c628144af287571cdf9857bcaa