【问题标题】:Play framework: is there a way to avoid strange form helper syntax?播放框架:有没有办法避免奇怪的表单助手语法?
【发布时间】:2015-05-03 23:57:18
【问题描述】:

我正在尝试使用 Play Framework 2 构建一个表单,usual syntax 是:

@helper.form(action = routes.Application.submit, 'id -> "myForm") {   
}

注意单引号是在id之前打开,从不关闭。

还有其他语法可以用来做同样的事情吗?

【问题讨论】:

    标签: java forms scala playframework playframework-2.0


    【解决方案1】:

    'idSymbol

    如果你不喜欢这个语法,可以使用Symbol("sym"),但这不是标准的。

    scala> 'symbol == Symbol("symbol")
    res0: Boolean = true
    

    【讨论】:

    • 谢谢!我想这就像写new String("string")而不是"string",但它更不打扰并且与大多数常见的编辑器兼容。
    【解决方案2】:

    可以通过隐式转换来解决它。不过,这将需要使用 scala 源文件(看起来您使用的是 java,但您可以混合使用它们)。

    app/libs/SymbolImplicits.scala

    package example.libs
    
    object SymbolImplicits {
        implicit def string2Symbol[A](s: (String, A)): (Symbol, A) = (Symbol(s._1), s._2)
    }
    

    那么在你看来你会@import example.libs.SymbolImplicits._,所以你可以这样做:

    @helper.form(action = routes.Application.submit, "id" -> "myForm") {   
    }
    

    "id" -> "myForm" 然后隐式转换为'id -> "myForm"

    为避免在每个视图中使用该导入,您还可以将此行添加到 build.sbt(或 Build.scala 项目属性中):

    TwirlKeys.templateImports += "example.libs.SymbolImplicits._"
    

    【讨论】:

      【解决方案3】:

      不,这是 other answer 中指出的 Scala 的 Symbol 必需的语法,但它看起来奇怪,因为它完全有效,没有理由与之抗争。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 2011-09-13
        • 2019-05-29
        • 2013-04-12
        • 2021-12-15
        • 1970-01-01
        相关资源
        最近更新 更多