有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HttpMediaTypeNotAcceptableException

我的jQuery函数有问题,我试图实现的是在列表框中填充数据

JavaScript函数

function load() {
        $.getJSON('${findAdminGroupsURL}', {
            ajax : 'true'
        }, function(data) {
            var html = '<option value="">Groups</option>';
            var len = data.length;
            for ( var i = 0; i < len; i++) {
                html += '<option value="' + data[i].name + '">' + data[i].name
                        + '</option>';
            }
            html += '</option>';

            $('#selection').html(html);
        });
    }

服务器端是

@RequestMapping(value = "groups", method = RequestMethod.GET)
    public @ResponseBody
    List<Group> getGroups() {
        return this.businessGroups();
    }

我在加载时调用load()函数它触发函数getGroups()并成功返回列表,但问题是一旦getGroups()完成

函数(数据)不加载,从不进入该函数,错误为

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

我不能发回一个组对象列表吗,或者它必须是Java原语类型吗


共 (2) 个答案

  1. # 2 楼答案

    我不确定您使用的是哪个spring版本。我也遇到了同样的问题,我通过在我的类路径中添加下面的jackson罐子解决了这个问题。我的spring version is 3.2.2

    jackson-mapper-asl
    jackson-core-asl
    

    这是我的控制器

    @RequestMapping(value="/{name}", method = RequestMethod.GET)
    public @ResponseBody List<Supplier> getSuppliers(@PathVariable String name) {
    
    
        searchDAO = (SearchDAO) SpringApplicationContext.getBean("searchDAO");
        List<Supplier> suppliers = null;
        try {
            suppliers = searchDAO.searchSuppliersByZipCode(name);
            //assertTrue(suppliers.size()>=1);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
        return suppliers;
    
    }
    

    我的应用程序上下文中只有mvc注释,不需要明确的内容协商。当你有@ResponseBody时,默认的json格式和jackson JAR将被考虑转换你的pojo