2013-02-12 120 views
2

我只能在我的发挥框架访问表单值2模板是这样的:如何从Play Framework 2模板的值中访问表单?

@eventForm("options[0].safeToDelete").value.toString() 

但我还需要能够在方法中,从访问模板,像这样:

optionFields(option: Field)(implicit handler: FieldConstructor, lang: play.api.i18n.Lang) = { 
    @option("safeToDelete").value.toString() 
} 
@optionFields(eventForm("options[0]")) 

第一个示例返回true

第二个返回Some(true)

我怎样才能得到第二个返回true

回答

3

在斯卡拉Option[T]是一种处理空对象的不同方式。

它有两个亚型 - Some[T]None。其中的很多方法可以处理这个问题是如下,

@option("safeToDelete").value.getOrElse(false).toString 

通过阅读更多.. http://www.tutorialspoint.com/scala/scala_options.htm

+0

这引起了我的价值,但它似乎并没有在有条件工作。我试过@if(option(“safeToDelete”).value.getOrElse(false)){...}'但是得到了'type mismatch;发现:任何必需:Boolean注意:隐式方法implicitFieldConstructor在此处不适用,因为它位于应用程序点之后,并且缺少显式结果类型' – Brian 2013-02-14 20:36:23

+0

您可以尝试'option(“safeToDelete”)。value.getOrElse(false).asInstanceOf [布尔]' – anoopelias 2013-02-16 17:25:32

+0

这会导致此异常:'ClassCastException:java.lang.String不能转换为java.lang.Boolean' – Brian 2013-02-16 19:28:58