如何从QueryString返回的List中获取String值?

时间:2013-02-15 20:10:41

标签: scala playframework

关于Play的新手问题!/ Scala: 如何获取存储在结果中的字符串?

object App extends Application {
  def route = {
    case GET(Path("/feed/geocodeo")) & QueryString(qs) => Action{ request=>
      val result = QueryString(qs,"latlng").getOrElse("40.714224,-73.961452")
      val response = WS.url("http://maps.googleapis.com/maps/api/geocode/json?latlng="+result.toString+"&sensor=false").get()
      val body = response.value.get.body
      Ok(body).as("text/html")
    }
  }
}

1 个答案:

答案 0 :(得分:2)

如果QueryString返回List [String],那么您的代码不应该编译。

scala> List("hi","bye").getOrElse("whatever")
<console>:8: error: value getOrElse is not a member of List[java.lang.String]
              List("hi","bye").getOrElse("whatever")
                               ^

你的代码是否编译?如果是这样,QueryString就是具有getOrElse方法的东西,结果是String中最具体的超类以及QueryString返回的任何内容。

通常你会在Option[Something]上调用getOrElse,而传递给getOrElse的对象应该与Something具有相同的类型,否则你将获得一个类型为isn的对象不会有用。