设置content type

     Play会根据request.format设定的值,选择指定的media类型来响应HTTP请求。该值通过文件扩展名来决定使用何种视图模板进行渲染,并且通过Play框架中的mime-types.properties文件进行映射处理(映射关系详见play\framework\src\play\libs\mime-types.properties文件),为media类型设定Content-type响应。

      Play请求的默认格式为html,因此index()控制器方法默认的渲染模板文件为index.html。如果需要指定其他的格式,有以下四种方式:


      (1)可以在程序代码调用render()方法之前进行格式设置。比如将media类型设置为text/css,就可以使用CSS文件进行渲染:

public static void index() {
    request
.format = "css";
    render
();
}


      (2)推荐一种更直接的做法,直接在routes文件中使用URL来指定格式。以下列路由配置为例:首先客户端通过index.xml请求服务器,服务器端将响应格式设置为xml,最后使用index.xml模版进行渲染。

GET   /index.xml                        Application.index(format:'xml')

      同样地,我们也可以使用CSS进行渲染:

GET   /stylesheets/dynamic_css                css.SiteCSS(format:'css')


      (3)Play还可以直接从URL中获取请求格式,动态指定渲染的模板类型。参考如下路由配置:

GET   /index.{format}                        Application.index

      当请求为/index.xml时,服务器会将返回格式设置为xml并使用相应的XMl文件进行渲染;请求为/index.txt时,则会使用文本进行渲染。


      (4)使用Play中的HTTP内容协商进行格式设置。


转自:http://www.playframework.cn/wiki/%E8%AE%BE%E7%BD%AEcontent%20type

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值