如何从Spring MVC中的表单帖子返回一个简单的xml字符串

时间:2011-07-28 12:34:32

标签: spring-mvc

我在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?

2 个答案:

答案 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将为您提供正确的引用。