2013-02-12 125 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