如何得到发挥!提供XML响应的框架
不知怎的,我不知道怎么玩!为XML响应提供服务。我也不理解文档(你可以找到) 我的目标是创建一个站点地图,因此响应应该是如何得到发挥!提供XML响应的框架,xml,playframework,playframework-2.0,Xml,Playframework,Playframework 2.0,不知怎的,我不知道怎么玩!为XML响应提供服务。我也不理解文档(你可以找到) 我的目标是创建一个站点地图,因此响应应该是内容类型:application/xml 您将如何更改以下控制器以提供该内容类型 public static Result sitemap() { return ok("<message \"status\"=\"OK\">Hello Paul</message>"); } 公共静态结果站点地图(){ 返回ok(“你好,保罗”); } 播放将正
内容类型:application/xml代码>
您将如何更改以下控制器以提供该内容类型
public static Result sitemap() {
return ok("<message \"status\"=\"OK\">Hello Paul</message>");
}
公共静态结果站点地图(){
返回ok(“你好,保罗”);
}
播放将正确设置内容类型
标题,前提是您将其以正确的方式传递到ok()
方法。例如,如果您返回字符串
(如您所示),它会认为这是文本/普通
。你至少有两种方法,最快的(但很难看)是强制内容类型,Jürgen建议将其设置为响应,但事实上的播放有一个快捷方式:
public static Result sitemap() {
return ok("<message status=\"OK\">Hello Paul</message>").as("text/xml");
}
因此,您可以轻松地使用它:
public static Result index() {
return ok(views.xml.sitemap.render());
}
当然,该文件是common Play的模板,因此您可以将数据传递给它并在其中进行处理(例如,迭代项目列表等)您是否尝试将@BodyParser.Of(Xml.class)
注释添加到sitemap
-方法中?是的,它仍然提供“文本/普通”:/有不同的方法。。。正如tehlexx在使用@BodyParser注释(使用response().setContentType(“application/xml”)
设置正确的mime类型)时提到的,或者更简单:使用模板,就像使用HTML页面一样。这可能是生成XML响应的最快方法。哇,太棒了。这很有效。谢谢但是@BodyParser注释不是必需的,response().setContentType(“application/xml”)完成了这项工作。非常感谢你。你为什么不把你的评论作为回答呢?所以我可以把它标记为正确的。内容类型是用xml模板自动设置的吗?不确定,因为json不是这样。是的,它是自动设置的,如果您使用ie.JsonNode
类似:返回ok(json.toJson(someObj))代码>它将被设置为应用程序/json
等。
public static Result index() {
return ok(views.xml.sitemap.render());
}