我在没有注释的情况下使用Spring 3.x作为我的MVC应用程序。我想只获取数据而不是查看。我谷歌它发现它可以使用@ResponseBody。但我不想使用注释。我怎么能告诉spring它只是数据而不是没有注释的视图。我的示例代码如下所示。
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");
}
}
答案 0 :(得分: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);
}
答案 1 :(得分:1)
我说你说数据时你的意思是JSON吗?
如果必须使用ModelAndView样式,只需自己处理HttpServletResponse
并返回null
。
答案 2 :(得分: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");
}