第三章 处理响应结果

修改默认的Content-Type

Play可以自动根据响应内容推断返回的数据类型。例如:

val textResult = Ok("Hello World!")

会自动设置 Content-Type为text/plain

val xmlResult = Ok(<message>Hello World!</message>)

会设置 Content-Type为application/xml

这些是通过 play.api.http.ContentType 来实现的。

不过我们也可以手动设置返回类型。

val htmlResult = Ok(<h1>Hello World!</h1>).as("text/html")

或者:

val htmlResult2 = Ok(<h1>Hello World!</h1>).as(HTML)

设置HTTP headers

我们也可以设置或者更新HTTP头部信息。

val result = Ok("Hello World!").withHeaders(
        CACHE_CONTROL -> "max-age=3600",
        ETAG -> "xx")

设置响应数据编码格式

Play默认使用UTF-8编码,不过也可以人工指定。只需要声明一个隐式参数转换就可以。

import play.api.mvc.Codec

class Application extends Controller {

        implicit val myCustomCharset = Codec.javaSupported("iso-8859-1")

        def index = Action {
        Ok(<h1>Hello World!</h1>).as(HTML)
        }

}