Java,Play2.0 ,')' 预期但 '=' 找到 Play

标签 java scala playframework

当我尝试创建标签时,我遵循 play2.0 文档中的“Common template use cases”。

@(level: String = "error")(body: (String) => Html)

@level match {

  case "success" => {
    <p class="success">
      @body("green")
    </p>
  }

  case "warning" => {
    <p class="warning">
      @body("orange")
    </p>
  }

  case "error" => {
    <p class="error">
      @body("red")
    </p>
  }

}

然后刷新页面http://localhost:9000 ,得到一个错误说:

')' expected but '=' found.
In foo/app/views/tags/notice.scala.html at line 4.
1#{extends 'main.html' /}
2#{set title:'notice.scala.html' /}
3
4@(level: String="error")(body: (String) => Html) 
5
6@level match {
7    
8  case "success" => {

因为我是 play2.0 和 scala 的新手,有人告诉我为什么吗?

最佳答案

在它自己的参数组中有一个默认参数真的没有意义:

@(level: String = "error")(body: (String) => Html)

请注意 Scala templates common use cases 中的示例“moreScripts and moreStyles”将默认参数与另一个参数放在一起:

@(title: String, scripts: Html = Html(""))(content: Html)

你也可以这样做:

@(body: (String) => Html, level: String = "error")

旁注:依靠字符串来区分成功/警告/错误并不是一个好主意。字符串很脆弱并且容易出现拼写错误,这会以恼人的方式隐藏错误。相反,寻找一种数据类型或创建您自己的数据类型来表示这一点:这样拼写错误就会成为编译器错误。

class ResultType
case object Success                 extends ResultType
case class Warning(message: String) extends ResultType
case class Error(message: String)   extends ResultType

关于Java,Play2.0 ,')' 预期但 '=' 找到 Play ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807102/

相关文章:

Scala sbt 项目给出 NullPointerException?

scala - Spark 至 Cassandra : Writing Sparse Rows With No Null Values To Cassandra

java - Bazel 相当于 Buck 的类路径

java - IntelliJ 禁用自动分行

java - 使用 oauth 2 向 c2dm 发送消息并收到 401

java - 检索 AJAX 结果时出现问题

scala - Play 框架堆栈跟踪日志记录和日志记录配置

java - 如何在没有域类的querydsl中构造查询

scala - CallingThreadDispatcher 有什么作用?

windows - sbt 在运行 Play docker 容器时下载失败