Playframework 2.0 在play框架模板中使用getOrElse

Playframework 2.0 在play框架模板中使用getOrElse,playframework-2.0,playframework-2.2,Playframework 2.0,Playframework 2.2,我的play 2模板中有一个选项[产品] 对产品的定义是“价格” 我如何首先检查选项是否为某些(p),然后访问价格 @myproduct.price // <- This obviously fails because myproduct is an Option[Product] @myproduct.getOrElse("not found").price // <- this does not work because price is not defined on th

我的play 2模板中有一个选项[产品]

对产品的定义是“价格”

我如何首先检查选项是否为某些(p),然后访问价格

@myproduct.price  // <- This obviously fails because myproduct is an Option[Product]

@myproduct.getOrElse("not found").price  // <- this does not work because price is not defined on the getOrElse.

@myproduct.price/您使用的
getOrElse
错误。传递给
getOrElse
的值也应该是
Product
类型,然后像您那样应用
price

一个解决方案是创建一个默认的
产品
,您可以在使用
getOrElse
时传递该产品

更好的解决方案是使用
map
,例如:

@myproduct.map { actualProduct =>
    actualProduct.price
}
只有在
选项
不是
None
的情况下,当您想要对您的case类执行某些操作时,才会使用此选项