不知何故,我无法弄清楚如何玩!提供XML响应.我也不了解文档(你可以在这里找到).
我的目标是创建一个站点地图,因此响应应该是一个 Content-Type: application/xml;
如何更改以下控制器以提供Content-Type?
public static Result sitemap() { return ok("Hello Paul "); }
biesior.. 12
Content-type
如果您将以ok()
正确的方式将其传递给方法,则播放将正确设置标题.举个例子,如果你要回来String
(正如你所说的那样)它会考虑那个text/plain
.你有至少2种方式,最快(但很难看)是强制内容类型,Jürgen建议将其设置为响应,但事实上Play有一个快捷方式:
public static Result sitemap() { return ok("Hello Paul ").as("text/xml"); }
另一方面,使用XML模板可能比使用粘合字符串构建它更好,更清晰...只需创建XML文件:
/app/views/sitemap.scala.xml
:
John Doe
所以你可以像使用它一样简单:
public static Result index() { return ok(views.xml.sitemap.render()); }
当然这个文件是Play的常用模板,因此您可以将数据传递给它并在内部进行处理(即迭代项目列表等)
Content-type
如果您将以ok()
正确的方式将其传递给方法,则播放将正确设置标题.举个例子,如果你要回来String
(正如你所说的那样)它会考虑那个text/plain
.你有至少2种方式,最快(但很难看)是强制内容类型,Jürgen建议将其设置为响应,但事实上Play有一个快捷方式:
public static Result sitemap() { return ok("<message status=\"OK\">Hello Paul</message>").as("text/xml"); }
另一方面,使用XML模板可能比使用粘合字符串构建它更好,更清晰...只需创建XML文件:
/app/views/sitemap.scala.xml
:
<message status="OK">John Doe</message>
所以你可以像使用它一样简单:
public static Result index() { return ok(views.xml.sitemap.render()); }
当然这个文件是Play的常用模板,因此您可以将数据传递给它并在内部进行处理(即迭代项目列表等)