Spring控制器没有击中。去错误块

时间:2015-02-23 14:29:10

标签: javascript jquery ajax spring-mvc spring-security

我正试图从我的JSP页面中击中控制器。我编写了以下函数,在单击特定链接时将调用该函数。

功能实现如下所示:

function categorySearchBasedOnParentId(name,id){
        $.ajax({
                url:"${pageContext.request.contextPath}/customer/get_categoriesByParentId.shx",
                data: 'id='+id,
                success:function(data){
                    var obj1 = jQuery.parseJSON(data);
                    var obj2 = obj1.tempCategoriesList;
                    $("#subCategoriesFilter").html(buildSub(obj2));
                },
                error:function(data,status,err){
                    alert("Error occured while searching the categories based on the parent category id");
                }
        });

在上面的函数中,我试图点击控制器URL并且控制器返回JSON对象。我正在将JSON转换为JavaScript对象并迭代它的值以显示在特定的div标签中。

我在春天写的控制器如下。

@RequestMapping(value = "/customer/get_categoriesByParentId.shx",method = RequestMethod.GET,    headers="Accept=*/*")
    public @ResponseBody String getCategoriesByParentId(Model model,HttpSession session,
        @ModelAttribute("shoppingCart") ShoppingCart shoppingCart,
        @RequestParam("id") String id) throws IOException{
        shoppingCart.setTempCategoriesList(categoryDao.getAllCategoriesByParentCategoryId(id));
        model.addAttribute("shoppingCart", shoppingCart); 
        String json = JSONUtil.createJsonString(shoppingCart);
        System.out.println(json);
        return json;
    }

我做了以下测试: 1)该值已正确传递给函数。我已经惊动并看到了。 2)可以在另一个项目中完成相同的控制器调用。它返回JSON对象。

我在控制台的无限时间内收到以下错误。

at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
    at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
    at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)

我几乎浪费了整整一天的时间。我想要帮助。请帮帮我。

1 个答案:

答案 0 :(得分:0)

使用@RestController注释您的控制器并返回您的购物车。 Spring会将其转换为JSON。

如果您想更改转换器,您必须为此配置Spring,但它应该可以在常规用例中使用。