受@ResponseBody影响的Spring映射

时间:2014-02-14 08:41:59

标签: ajax spring spring-mvc

我正在对我的Spring控制器进行ajax调用以从blob对象获取数据。我将blob转换为String,并尝试返回它。如果我不使用@ResponseBody注释,我会收到404错误,但使用注释解决了这个问题。我尝试在ajax代码中指定不同的数据类型,但它没有任何效果。 有人可以向我解释一下这种行为。还有关于以更好的方式传回blob数据的任何建议吗?

@RequestMapping(value = "/BlobData", method = RequestMethod.GET)
    public @ResponseBody String genBlobData(int Id) throws SQLException {


        Blob blob =  daoImpl.getBlob(Id);
        byte[] content = blob.getBytes(1, (int) blob.length());
        String temp = new String(content);
        return temp;
    }

和ajax:

  $.ajax({
                    type: 'GET',
                    dataType: "text",
                        url: 'BlobData',
                        data: {Id:Id},               
                        success: function(data) 
                                {
                                     var newWindow = window.open();newWindow.document.write(data); 
                                     /* alert(data); */
                                 }
                        });

由于

1 个答案:

答案 0 :(得分:0)

如果没有@ResponseBody,返回的字符串应该是视图的相对路径(例如JSP文件),因此是404。

请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-viewresolver-resolver