Java 如何在没有注释的情况下从spring控制器获取数据
我在MVC应用程序中使用Spring3.x,没有注释。我只想获取数据,不想查看。我搜索了一下,发现可以使用@ResponseBody。但是我不想使用注释。我怎样才能告诉spring它只是数据,而不是没有注释的视图。下面给出了我的示例代码Java 如何在没有注释的情况下从spring控制器获取数据,java,spring,Java,Spring,我在MVC应用程序中使用Spring3.x,没有注释。我只想获取数据,不想查看。我搜索了一下,发现可以使用@ResponseBody。但是我不想使用注释。我怎样才能告诉spring它只是数据,而不是没有注释的视图。下面给出了我的示例代码 public class ShowGraphController extends AbstractController { private JdbcUserDao userDao; public void setUserDao(JdbcUse
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");
}
}
与Spring3一样,它有点复杂,理想情况下应该使用
ResponseBody
annotation。看看这门课,这可能对你的目的有用。Spring文档中的示例代码:
@RequestMapping("/handle")
public ResponseEntity<String> handle() {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("MyResponseHeader", "MyValue");
return new
ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}
@RequestMapping(“/handle”)
公共响应句柄(){
HttpHeaders responseHeaders=新的HttpHeaders();
responseHeaders.set(“MyResponseHeader”、“MyValue”);
还新
ResponseEntity(“Hello World”,responseHeaders,HttpStatus.CREATED);
}
我想你说的数据是指JSON
如果您必须使用ModelAndView样式,只需自己处理
HttpServletResponse
并返回null
最简单的方法是使用@ResponseBody,但如果您不想使用注释,您可以自己填充响应:
protected void handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {
response.getWriter().println("want it retun as a data not a view name only");
}
你为什么不想使用注释呢?我也想知道这个问题的答案。也许是一个好教程的链接你的控制器如何定义为控制器,您的方法映射到什么请求映射?我正在testController中的dispatcher-servler.xml中定义控制器,并使用Jackson的
ObjectMapper.writeValue
和HttpServletResponse.getPrintWriter()