如何获取从ajax中的Controller返回的模型的值?

时间:2017-08-08 05:20:31

标签: javascript jquery ajax spring spring-mvc

AdminController.java

@RequestMapping(value="show_allMember.do",produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.POST)
    public @ResponseBody String memberList(ModelAndView mav)
    {
        List<HashMap<String, Object>> members = aService.getMemberList();
        mav.addObject("mList",members);

        System.out.println("model is that : " + mav);

        return "" + mav ;
    }

adminMainPage.jsp

function show_allMember()
{
    $('.member_management_area').css('display','block');
    $('.member_management').css('color','#fe4978');

    $.ajax
    ({
        type: 'POST',
        url: 'http://localhost:8080/rachelivf/show_allMember.do',
        dataType:'JSON',
        success: function(mList)
        {
            console.log(mList);
            $.each(response.mList, function(index, value)
            {
                console.log(response.list);
            });
       },
       error: function(xhr,ajaxOptions,thrownError)
       {
           if(xhr.status == 404)
         {
               alert(thrownError);
         }
       }
     });
}

我试图找到方法。但它失败了。

我想获取从控制器返回的模型的值 ajax并在jsp中显示它。

但我不知道如何。

作为初学者,我不太了解,所以我问了很多问题。 如果我已正确提供信息,请告诉我。 如果问题的要点是错误的,请告诉我。 我需要你的意见。

2 个答案:

答案 0 :(得分:2)

将您的return type更改为List<HashMap<String, Object>>而不是String并返回 members

@RequestMapping(value="show_allMember.do",produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.GET)
public @ResponseBody String memberList(ModelAndView mav)
{
    List<HashMap<String, Object>> members = aService.getMemberList();
    return members ;
    //OR
    //return aService.getMemberList();

}

在Ajax Success中尝试以

进行访问
type: 'GET',
success: function(mList)
    {
        console.log(mList);
        $.each(response.mList, function(index, value)
        {
            console.log(value.yourMapKey);
        });
   },

method = RequestMethod.POST更改为method = RequestMethod.GET 希望这有帮助...

答案 1 :(得分:1)

  1. 您不需要使用GET从服务器获取数据。

  2. 您不需要使用ModelAndView。它用于ViewResolver创建html页面 - 它采用String视图名称的形式,并从模型中放入表单对象。

  3. 您可以从方法中返回所需的数据:

        @RequestMapping(value="show_allMember.do",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.GET)
        public @ResponseBody List<HashMap<String, Object>> memberList()
        {
            return aService.getMemberList();
        }
    

    并修复请求:

    $.ajax
    ({
        type: 'GET',
        url: 'http://localhost:8080/rachelivf/show_allMember.do',
        dataType:'JSON',
        success: function(response)
        {
            $.each(response, function(index, value)
            {
                console.log(value);
            });
       },
       error: function(xhr,ajaxOptions,thrownError)
       {
           if(xhr.status == 404)
         {
               alert(thrownError);
         }
       }
     });