我将一些java代码转换为scala,我希望能够获取特定的标题并将其作为字符串返回。scala play 2.0获取请求标题
在java中我有:
return request().getHeader("myHeader")
我一直无法实现斯卡拉同样的事情。任何帮助将不胜感激!谢谢!
我将一些java代码转换为scala,我希望能够获取特定的标题并将其作为字符串返回。scala play 2.0获取请求标题
在java中我有:
return request().getHeader("myHeader")
我一直无法实现斯卡拉同样的事情。任何帮助将不胜感激!谢谢!
你可以写:
request.get("myHeader").orNull
如果你想要的东西基本上是一样的你的Java线。但是你没有!
request.get("myHeader")
返回一个Option[String]
,这是Scala鼓励您编写不会抛出空指针异常的代码的方式。
您可以用各种方式处理Option
。例如,如果你想提供一个默认值:
val h: String = request.get("myHeader").getOrElse("")
或者,如果你想要做的事与头如果存在的话:
request.foreach { h: String => doSomething(h) }
或者只是:
request foreach doSomething
有关更多可能性,请参阅this cheat sheet。
非常感谢!指出我也应该处理null/Option案例。也许我有一个更基本的问题。我收到错误“未找到:值请求”。 – user1253952 2012-07-20 19:31:44
你在哪里试图使用它? – 2012-07-20 19:33:08
在我的一个控制器文件中,使用了一个非常基本的方法: def getName = request.get(“myHeader”) – user1253952 2012-07-20 19:36:29
当我尝试了上述答案斯卡拉与playframework 2.2:
request.get("myHeader").getOrElse("")
它给了我下面的错误:当我使用
value get is not a member of play.api.mvc.Request[play.api.mvc.AnyContent]
:
request.headers.get("myHeader").getOrElse("")
这现在工作。我建议使用这个。
http://stackoverflow.com/questions/11198998/scala-play-2-passing-request-to-method 见下文特拉维斯布朗的答复意见。 – user1253952 2012-07-22 06:15:44