Java常量是否可以在Play中使用!模板?

时间:2011-11-20 13:03:26

标签: java templates playframework

我有一个用户实体:

@Entity
public class User extends PortalModel {

    ...

    public enum Role {
        User,
        Admin,
    }

    @Required
    public Role role;

    public boolean isAdmin() {
        return role == Role.Admin;
    }
}

我尝试使用此模板:

#{if user && user.role == User.Role.Admin}
    <li>
        <a href="/admin">Admin</a>
    </li>
#{/if}

这失败了,我怀疑原因是你只能从模板中访问模型对象本身,而不能访问其他运行时类,甚至包括枚举常量。我转而定义并使用isAdmin()方法:

#{if user && user.isAdmin()}

这很有效。我认为我是对的,但只是想确认 - 你可以从模板中访问的唯一java对象是模型类本身,它们是在render()中传递还是放入{ {1}}?

1 个答案:

答案 0 :(得分:3)

Play的template engine docs!说表达式语法是Groovy,所以这应该是可能的。请尝试使用User的完全限定名称。