Асинхронный возврат AJAX после загрузки страницы - PullRequest
0 голосов
/ 04 марта 2019

Я использую Spring MVC, и мне нужно сделать асинхронный вызов на сервер только один раз, когда страница JSP полностью загрузится.

На самом деле у меня есть контроллер, который возвращает список.Я называю Контроллер используя AJAX.Проблема с моим решением заключается в том, что я не могу получить данные List после загрузки JSP-страницы.

@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>

Есть ли какой-либо способ вернуть List After загруженную страницу или как загрузитьасинхронно?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019
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();
}
0 голосов
/ 04 марта 2019

Просто верните List of User вместо ModelAndView и добавьте аннотацию к объекту List @ResponseBody.Пользователь должен быть Serializable, и вы можете вызывать ajax-функцию либо на wiondwos.onload, либо на document.ready, он будет загружать список асинхронно. Не возвращайте ModelAndAiew, он используется для перенаправления на страницу в случае отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...