如何从没有注释的弹簧控制器获取数据

时间:2013-07-04 11:57:13

标签: java spring

我在没有注释的情况下使用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");
    }
}

3 个答案:

答案 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");
}