Java Play框架模板中不需要的语法

Java Play框架模板中不需要的语法,java,templates,playframework-2.0,playframework-2.3,twirl,Java,Templates,Playframework 2.0,Playframework 2.3,Twirl,我正在使用Play2.3.7Java,我正在尝试渲染模板。我可以让它工作,但只有通过使用非常难看的语法。到目前为止,我的作品就在这里: 显然,拥有一堆用括号括起来的HTML块并不是最好的方法。我理想的“home.scala.html”如下所示: 我希望有解析为“main.scala.html”的命名参数,但在彻底搜索SO之后,我找不到任何有意义的资源,试图找到Nicolas Leroux和Sietse de Kaper为Java提供的信息,并搜索互联网的其余部分。非常感谢您的帮助。在中,您可以在

我正在使用Play2.3.7Java,我正在尝试渲染模板。我可以让它工作,但只有通过使用非常难看的语法。到目前为止,我的作品就在这里:

显然,拥有一堆用括号括起来的HTML块并不是最好的方法。我理想的“home.scala.html”如下所示:

我希望有解析为“main.scala.html”的命名参数,但在彻底搜索SO之后,我找不到任何有意义的资源,试图找到Nicolas Leroux和Sietse de Kaper为Java提供的信息,并搜索互联网的其余部分。非常感谢您的帮助。

在中,您可以在版面段落末尾找到一个专门针对您的问题的部分。在这里可以找到两种声明页面特定内容块的不同方法

通过应用文档中的信息,您的视图将如下所示:

@()

@title = {
<title>Welcome to MessageWorks.</title>
},

@stylesheets = {
<link type="text/css" rel="stylesheet" href="/styles/main.css" />
...
},

@javascripts = {
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
...
},

@page = {
<h1>MessageWorks</h1>
...
} 

@main(title)(stylesheets)(javascripts)(page)

您必须将每个部分定义为一个可重用的块,而不是简单地将它们作为参数传递给主模板。

我最终找到了自己问题的解决方案。我的设置最终看起来像,这或多或少就是我理想的解决方案。本质上,我将“main.scala.html”定义为一个函数,它接受顶部列出的4个参数,然后在“home.scala.html”中,我定义了4个充满html的变量,然后将它们传递给我的函数“main.scala.html”。工作起来很有魅力,我可以将其他类似结构的文件解析到main中。

谢谢。我确实忘记了这些东西实际上是可执行的Scala,它改变了一切。我找到了自己的解决方案,我将把它作为一个评论发布到我自己的帖子中,希望有一天我能帮助别人。