我在Spring MVC中有一个简单的http POST操作,我不需要返回一个完整的网页。相反,我只需要返回一个xml字符串(例如)
真
但当我执行下面的操作时,我的客户正在获得404
@RequestMapping(value = "/updateStuffAjaxStyle.do", method = RequestMethod.POST)
public String updateStuffAjaxStyle(HttpServletRequest request, HttpServletResponse response) {
//..do something w/ the inputs ...
return "<valid>true</valid>";
}
是否有可能返回一个简单的xml字符串,而不必定义大量的bean defs?
答案 0 :(得分:5)
我相信您可以通过使用@ResponseBody
注释注释方法返回类型来执行此操作,如下所示:
@RequestMapping(value = "/updateStuffAjaxStyle.do", method = RequestMethod.POST)
public @ResponseBody String updateStuffAjaxStyle(HttpServletRequest request,
HttpServletResponse response) {
//..do something w/ the inputs ...
return "<valid>true</valid>";
}
答案 1 :(得分:3)
是的,确实如此。但不是通过从方法返回String,而是将其写入HttpServletResponse.getWriter()
并更改方法签名以返回void
(这样,Spring将知道您将自己处理响应)。
要获取servlet响应编写器,只需在方法中添加一个类型为java.io.Writer
的额外参数,Spring将为您提供正确的引用。