在使用Play 2.0.x
框架的项目中,我有很多模板。许多模板都使用String
和Lang
参数在页面上以特定语言显示用户名和文本。
由于几乎所有模板都使用了这些模板,我应该:
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>
我想知道哪种方法更受欢迎,以及为什么以及如果使用另一种方法有任何缺点。
答案 0 :(得分:2)
实际上你完全理解了我只能使用静态方法建议的使用方式,因为你可以看到@Messages
类做了它并且它可以工作,否则你需要每次都传递它们。
提示,为了避免冗余的数据库查询,尤其是在获取登录用户的对象时,请考虑使用缓存API(每个用户一个条目)。