我正在尝试使用提供的模板系统编写带有Play的Web应用程序。我试图将模板分成标题和内容区域。下面是我为模板编写的代码:
内容:
@(file: models.File)
@header(@file.title)
<h2>@file.title</h2>
<img src="@file.fileLocation">
部首:
@(title: String)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
</head>
<body>
我收到的错误是:
2: illegal start of simple expression
[error] @header(@file.title)
[error] ^
看起来我试图将title参数错误地传递给标题模板。我应该使用什么语法来传递title参数?
答案 0 :(得分:1)
Play模板解析器将@
识别为Scala表达式的开头,但它使用magic来确定表达式的结尾位置。 (我认为,有点像寻找关闭的parens或braces)。
因此,在您的代码中,@header(@file.title)
是所有Scala代码,而不是HTML模板,第二个@
是不必要的。您只需要@header(file.title)
。