我正在使用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>
有什么方法可以在页面加载后返回列表,或者如何异步加载?预先感谢。
答案 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();
}