playframework中有条件的代码在哪里得到$ {client?.name}?

时间:2012-03-12 22:12:09

标签: playframework

使用JsonElement时,如果不为null,我需要获取元素。

使用JsonElement时不起作用 $ {client?.name}

有人知道怎么玩!做这个评估吗?

2 个答案:

答案 0 :(得分:1)

条件?.表示法是Groovy的一部分,而不是Java。因此,此表示法仅适用于Groovy模板引擎。听起来你正试图在Java类中使用相同的表示法,这是无法完成的。

您可以在常规网站上阅读有关Groovy“安全导航操作员”的更多信息 - http://groovy.codehaus.org/Operators#Operators-SafeNavigationOperator

答案 1 :(得分:1)

使用groovy来评估groovy模板中的java表达式。它基于Java bean规范。假设您有一个对象client,使用公共方法getName(),那么您可以执行${client.name}${client.getName()},此外,播放groovy模板引擎可以通过允许您的输入安全你使用${client?.name}。回到你的情况,如果客户端是JsonElement,那么你可以通过${client?.getAsJsonObject()?.get("name")}获得name属性