3

我在没有注释的情况下为我的 MVC 应用程序使用 Spring 3.x。我只想获取数据而不是查看。我用谷歌搜索,发现可以使用 @ResponseBody 。但我不想使用注释。我怎么能告诉春天它只是数据而不是没有注释的视图。我的示例代码如下。

public class ShowGraphController extends AbstractController {

    private JdbcUserDao userDao;

    public void setUserDao(JdbcUserDao userDao) {
        this.userDao = userDao;
    }

    protected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse responce) throws Exception {{
        return new  ModelAndView("want it retun as a data not a view name only");
    }
}
4

3 回答 3

1

当您说数据时,我假设您的意思是 JSON?

如果您必须使用 ModelAndView 样式,只需处理HttpServletResponse自己并返回null

于 2013-07-04T12:12:21.377 回答
1

最简单的方法是使用@ResponseBody,但如果您不想使用Annotation,您可以自己填充响应:

protected void handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {
    response.getWriter().println("want it retun as a data not a view name only");
}
于 2013-07-04T12:17:54.180 回答
1

它与 Spring 3 一样有点复杂,理想情况下您应该使用ResponseBody注释。看看这个类ResponseEntity,这可能对您的目的有用。来自 Spring doc 的示例代码:

@RequestMapping("/handle")
public ResponseEntity<String> handle() {
  HttpHeaders responseHeaders = new HttpHeaders();
  responseHeaders.set("MyResponseHeader", "MyValue");
  return new 
     ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}
于 2013-07-04T12:05:12.463 回答