Play框架中的静态方法与模板参数

时间:2013-04-13 20:10:31

标签: java templates parameters static playframework-2.0

在使用Play 2.0.x框架的项目中,我有很多模板。许多模板都使用StringLang参数在页面上以特定语言显示用户名和文本。

由于几乎所有模板都使用了这些模板,我应该:

  1. 将用户名和语言作为参数传递给模板?
  2. 在我的模型中使用静态方法来获取用户名/语言?
  3. 1的示例:

    控制器:

    return ok(views.html.template.render(User.username(), User.language());
    

    调用模板:

    @(lang: Lang)(username : String)
    <p>@Messages.get(lang, "hello") username!</p>
    

    2的例子:

    控制器:

    return ok(views.html.template.render());
    

    调用模板:

    <p>@Messages.get(User.language(), "hello") User.username()!</p>
    

    我想知道哪种方法更受欢迎,以及为什么以及如果使用另一种方法有任何缺点。

1 个答案:

答案 0 :(得分:2)

实际上你完全理解了我只能使用静态方法建议的使用方式,因为你可以看到@Messages类做了它并且它可以工作,否则你需要每次都传递它们。

提示,为了避免冗余的数据库查询,尤其是在获取登录用户的对象时,请考虑使用缓存API(每个用户一个条目)。