【问题标题】:multiple Ok in controller is not Ok控制器中的多个 Ok 不是 Ok
【发布时间】:2014-08-07 11:42:35
【问题描述】:
我期待 t 或 f 作为回应,但它给了 hello
def check1 = Action { implicit request =>
val flag=List(true,false)
if(Random.shuffle(flag).head){
println("true")
Ok("t")
}else{
println("false")
Ok("f")
}
Ok("hello")
}
为什么会这样?
我在想它不会执行最后一个 Ok,第一个 Ok 给出响应并且剩余的代码不会执行
【问题讨论】:
标签:
scala
playframework
response
【解决方案1】:
您的if/else 块始终返回Result(结束操作并将内容发送到浏览器),请改用它:
def check1 = Action { implicit request =>
val flag=List(true,false)
if(Random.shuffle(flag).head){
println("true")
Ok("t")
}else{
println("false")
Ok("hello")
}
}
或
def check1 = Action { implicit request =>
val flag=List(true,false)
if(Random.shuffle(flag).head){
println("true")
Ok("t")
}
Ok("hello")
}
【解决方案2】:
当然,你得到了"hello",这是你的块的最后一个语句——我真的不明白这个Ok("hello") 的意义,没有它一切都会正常工作。您的if/else 具有"t" 或"f" 的价值,但您从不使用它。
这将起作用:
def check1 = Action { implicit request =>
val flag=List(true,false)
if(Random.shuffle(flag).head){
println("true")
Ok("t")
}else{
println("false")
Ok("f")
}
}