playframework2模板,为什么简单的字符串是正确的,而带有字符串的参数得到编译错误

时间:2014-04-08 10:29:27

标签: scala templates playframework-2.0

如果我的代码是:

@(param: String)

@main("hello world") {
@slides("sssdfdes")
<div class="list-group">
</div>

}

它有效,@ main是我的另一个模板。 但如果我想这样做:

@(param: String)

@main(@param) {
@slides("sssdfdes")
<div class="list-group">
</div>

}

编译让我错误:

[info] Set current project to slickplay (in build file:/C:/testprojects/slickpla
y/)
[info] Compiling 1 Scala source to C:\testprojects\slickplay\target\scala-2.10\c
lasses...
[error] C:\testprojects\slickplay\app\views\shopmain.scala.html:6: illegal start
 of simple expression
[error] @main(@param) {
[error]       ^
[error] C:\testprojects\slickplay\app\views\shopmain.scala.html:15: ')' expected
 but '}' found.
[error] two errors found
[error] (compile:compile) Compilation failed
[error] Total time: 3 s, completed 08/04/2014 8:24:11 PM

如何在这种情况下在scala模板中传递变量字符串?

2 个答案:

答案 0 :(得分:3)

只需使用@main(param)代替@main(@param)

答案 1 :(得分:1)

这是因为你在一行中多次使用' @ ',

Just use @main(param) instead of @main(@param)
答案由上面的@serejja给出