繁体   English   中英

Spring MVC:在Controller中使用model.addAttribute()将各种列表发送到Ajax方法

[英]Spring MVC : Using model.addAttribute() in Controller to send various Lists to Ajax method

我正在开发一个Spring-MVC应用程序,在该应用程序中我想将不同类型的java.util.List发送到AJAX方法。 我不知道在将数据提供给AJAX方法时是否可以在控制器中使用model.addAttribute

情况是:

@RequestMapping(value=/mappingurl)
public @ResponseBody void sendDataToAjax(){
    List<Item1> item1;
    List<Item2> item2;
    List<Item3> item3;

    model.addAttribute("item1collection",item1);
    model.addAttribute("item2collection",item2);
    model.addAttribute("item3collection",item3);    
}

如果它是AJAX方法,是否可以正常工作,如果不能,该怎么办,我可以发送对象List并在AJAX方法中访问它。 我希望我的问题很清楚,否则请让我知道,我会即兴创作。 谢谢。 :-)

在模型中添加几个属性不会有任何问题。 当您返回客户端时,您将能够通过AJAX请求获得它们。

这里的问题是您不能在client-side通过javascript使用java.util.List对象 ,因此您必须创建Json对象或将其转换为array java.util.List

我要在您的代码中更改的唯一一件事就是添加响应以捕获成功或方法失败:

public @ResponseBody String sendDataToAjax(){
    // do your stuff and return "KO" if something goes wrong


    return "OK"; // if success
}

通过实现枚举类可以更好地完成此操作……但这是一种更快的方法

之后,您可以在ajax请求中捕获server-side操作的结果,并根据它继续操作。

恕我直言,答案是否定的,您不能在AJAX响应中迭代或打印Arraylist

您可以将其转换为JSON-array ,并在ajax响应中进行迭代。 一个很好的启动示例

将字符串的Java ArrayList转换为JavaScript数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM