页面加载后异步返回AJAX

时间:2019-03-04 08:38:49

标签: java jquery ajax spring-mvc

我正在使用Spring MVC,并且仅在JSP页面完全加载后才需要对服务器进行一次异步调用。

我实际上拥有的是一个返回列表的控制器。我使用AJAX调用Controller。我的解决方案的问题在于,加载JSP页面后,我无法获取List的数据。

@RequestMapping(method=RequestMethod.GET, value="/myList")
public ModelAndView getSubView(Model model) 
{
  model.addAttribute("list", userServiceI.getAllUsers());
  return new ModelAndView( "myList" );
}
<script type="text/javascript">
  function ajaxPost() {
    $.ajax({
      type: "GET",
      url: "myList",
      success: function(list) {
        alert(list.get(0).name);
      }
    });
  }
</script>

有什么方法可以在页面加载后返回列表,或者如何异步加载?预先感谢。

2 个答案:

答案 0 :(得分:2)

只返回User列表而不是ModelAndView并在List对象@ResponseBody上给出注释。用户应该是可序列化的,并且可以在wiondwos.onload或document.ready上调用ajax函数。就绪后,它将异步加载列表。不要返回ModelAndAiew,它用于表单提交时在页面上进行重定向。

答案 1 :(得分:1)

You need to return Json you can try it as follows 

@RequestMapping(method=RequestMethod.GET, value="/myList")
public String getSubView(Model model) 
{
   JSONObject json = new JSONObject();
   return json.put("list", userServiceI.getAllUsers());  
}

or you can use @ResponseBody as 

@RequestMapping(method=RequestMethod.GET, value="/myList")
@ResponseBody
public ArrayList getSubView(Model model) 
{
  return userServiceI.getAllUsers();
}