2

在我使用Play 2.0.x框架的项目中,我有很多模板。这些模板中的很多都采用StringandLang参数来在页面上以某种语言显示用户名和文本。

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

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

示例 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>

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

4

1 回答 1

2

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

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

于 2013-04-13T20:25:45.857 回答