I have the following code in Play 2.0 template:
@content.toString.lines.map{
case line => // i put `case` here as another attempt to make it work
line match {
case "" => @Html("")
case _ => <li>@Html(line)</li> /*CRASH*/
}
}
It fails on the marked line, saying that not found: value line. The second variant of it:
@for(line <- content.toString.lines){
@line match { /*CRASH*/
case "" => @Html("")
case _ => <li>@Html(line)</li>
}
}
fails on the marked line, claiming that 'case' expected but identifier found.
UPDATE:
Same thing goes for val:
@val headID = "head"
comes up with illegal start of simple expression.
UPDATE ENDS
I would like to know, what am I doing wrong and how to correctly implement the match-case structure and val assignment in Play’s templates?
Using
matchexpressions in templatesYou need to enclose in braces (“{” and “}”) the HTML content of your templates:
In your specific case, the following code would read better IMHO:
Defining values
You can define values using the
defining[T](value: T)(usage: T => Html)helper: