【问题标题】:multiple Ok in controller is not Ok控制器中的多个 Ok 不是 Ok
【发布时间】:2014-08-07 11:42:35
【问题描述】:

我期待 tf 作为回应,但它给了 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")
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-28
        • 2014-01-15
        • 2016-04-29
        • 1970-01-01
        • 2016-07-14
        相关资源
        最近更新 更多