Java Play2 - 通用模板?

时间:2012-08-24 16:32:58

标签: java templates scala playframework playframework-2.0

是否可以创建通用模板?

伪代码:

@(myForm: Form[T])

所以我可以像这样重复使用它们:

@inputText(
                myForm("title"), 
                '_label -> "title"

            )
  • 如果是,我该怎么做?

3 个答案:

答案 0 :(得分:9)

使用魔力下划线:

@(form: Form[_])

这在Scala中称为存在类型,它大致意味着“存在类型参数,但我不在乎它是什么”。

答案 1 :(得分:4)

我不喜欢@(form: Form[_])方法,因为它会将窗口中的类型安全抛出。

传入ok(form.render(userform))时,在模板中@form("lastNme")时,编译器将无法获得帮助,但如果在测试期间没有捕获,则会出现运行时错误。

我正在做的是为常见表格提供界面(或游戏2 scala中的特征)(例如会员注册和会议注册,或联盟统计和团队统计等);这样,在编译时,肥胖的错别字等都被抓住了。

是的,要处理更多的样板,但是从围栏的动态语言方面来看,我越少处理运行时错误就越好......

答案 2 :(得分:2)

你试过吗?

app/views包中创建新视图:pseudo.scala.html

@(someParam: String)
<h1>This is my pseudo template</h1>
<div>And there is some param: <b>@someParam</b></div>

然后在任何其他视图中,您可以像这样使用它:

...
<div>@pseudo("param pam pam")</div>
...

当然,您的参数不必仅为String,因此您可以通过Form[T]List[T]或其他任何内容。