Java mvc包中的trait PlainResult已被弃用:在Play 2.3中,SimpleResult将是唯一的结果类型
我在PlayFramework2.2中使用scala,我使用下面的一段代码来获取用户是否在会话中Java mvc包中的trait PlainResult已被弃用:在Play 2.3中,SimpleResult将是唯一的结果类型,java,scala,playframework,deprecated,playframework-2.2,Java,Scala,Playframework,Deprecated,Playframework 2.2,我在PlayFramework2.2中使用scala,我使用下面的一段代码来获取用户是否在会话中 session.get("userId").map { user => //----------------- }.getOrElse { //---------------- } 但从一些天开始,当我编译我的项目时,它得到了警告 trait PlainResult in package mvc is deprecated: In Play 2.3, SimpleR
session.get("userId").map { user =>
//-----------------
}.getOrElse {
//----------------
}
但从一些天开始,当我编译我的项目时,它得到了警告
trait PlainResult in package mvc is deprecated: In Play 2.3, SimpleResult will be the only
type of result
[warn] session.get("userId").map { user =>
[warn] ^
既然它现在已经被弃用了,那么我现在使用什么来获取该用户是在会话中还是在没有任何警告的情况下
def ok(): SimpleResult = Ok.withSession(
"xxx" -> "yyy"
).withLang(Lang("en-US"))
问题与您提供的代码无关 Play 2.1提供了3种类型的同步结果:
Result、SimpleResult和PlainResult
在游戏2.2中,只有:SimpleResult
,它将在游戏2.3中重命名为Result
在map函数中,有一段代码返回PlainResult
如果您只是使用标准的playapi函数,那么您不必担心,因为有一项工作正在进行中,一些警告将消失。如果您在上面构建了更复杂的东西,那么您可能需要查看并修复为返回SimpleResult而构建的函数。如果没有看到map函数中的代码,我真的很难说
无论如何,如果您想确定,您可能需要切换到playframework当前快照,看看它是否工作
对于示例代码:
def ok() = Ok.withSession(
"xxx" -> "yyy"
).withLang(Lang("en-US"))
对于Play 2.2.0,我得到:
trait PlainResult in package mvc is deprecated: In Play 2.3, SimpleResult will be the only type of result
[warn] def ok() = Ok.withSession(
如果我将其更改为Play 2.3-SNAPSHOT,则不会出现任何错误,因为Play 2.3中的withLang不再返回PlainResult。消息会抱怨类型为
PlainResult
的结果(映射函数的内容是什么?)不是你使用会话的方式…为了帮助你,你需要提供你在map调用中使用的代码。这就是你的类型的来源。