Raja
Raja

Reputation: 647

Compilation Error in Play 2 Scala Templates

I am trying to run my first play application but seems I am wrong somewhere. I get Compilation error play.api.templates.HtmlFormat.Appendable does not take parameters In D:\PlayProjects\HelloJava\app\views\index.scala.html

index.scala.html

 @(message: String)(level:Int, list:Seq[String])
    @main("Welcome to Play Framework") {    
        <div class="well">
            <h1>@message</h1>       
            @listContainer{
                <h@level>Level @level </h@level>
                    }(level, list){ //this curly brace is error point
                        <div>footer</div>
                    }
        </div>
    }

listContainer.scala.html

@(header:Html)(level:Int , items:Seq[String]) (footer:Html)
<h@level>Here we go ! </h@level>
<div style="margin-left:@{5*level}%">
    @header
        <ul id="list@level" style="margin-left: @{5*level}%" >
            @items.map {item =>
                <li>@item</li>
                }
        </ul>
    @footer
</div>

Compilation Results:

classes...
[error] D:\PlayProjects\HelloJava\app\views\index.scala.html:9: play.api.templat
es.HtmlFormat.Appendable does not take parameters
[error]                                 }(level, list){
[error]                                               ^
[error] D:\PlayProjects\HelloJava\app\views\listContainer.scala.html:12: not fou
nd: value footer
[error]         @footer
[error]          ^
[error] two errors found
[error] (compile:compile) Compilation failed
[error] application -

! @6nl63boe5 - Internal server error, for (GET) [/] ->

play.PlayExceptions$CompilationException: Compilation error[play.api.templates.H
tmlFormat.Appendable does not take parameters]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfu
n$apply$16.apply(PlayReloader.scala:304) ~[na:na]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfu
n$apply$16.apply(PlayReloader.scala:304) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(P
layReloader.scala:304) ~[na:na]

Upvotes: 0

Views: 1020

Answers (1)

Raja
Raja

Reputation: 647

I found the answer after fiddling with my code :D

@(header:Html)(level:Int , items:Seq[String])(footer:Html)

I removed the space between "Seq[String])" and (footer:HTML) which fixed the issue. Guess there shouldn't be any space between parameter definition.

Upvotes: 1

Related Questions