Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有注释的情况下从spring控制器获取数据_Java_Spring - Fatal编程技术网

Java 如何在没有注释的情况下从spring控制器获取数据

Java 如何在没有注释的情况下从spring控制器获取数据,java,spring,Java,Spring,我在MVC应用程序中使用Spring3.x,没有注释。我只想获取数据,不想查看。我搜索了一下,发现可以使用@ResponseBody。但是我不想使用注释。我怎样才能告诉spring它只是数据,而不是没有注释的视图。下面给出了我的示例代码 public class ShowGraphController extends AbstractController { private JdbcUserDao userDao; public void setUserDao(JdbcUse

我在MVC应用程序中使用Spring3.x,没有注释。我只想获取数据,不想查看。我搜索了一下,发现可以使用@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");
    }
}

与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()