Доступны ли Java-константы для использования из Play!шаблоны? - PullRequest
2 голосов
/ 20 ноября 2011

У меня есть пользовательский объект:

@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() или помещаются в renderArgs?

1 Ответ

3 голосов
/ 20 ноября 2011

шаблонный движок для Play!скажем, синтаксис выражения Groovy, так что это должно быть возможно.Попробуйте использовать полное имя для User.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...