Spring Web - Restful Webservice - 在客户端/服务器端传递/接收ArrayList作为参数/参数

时间:2012-05-16 09:28:44

标签: web-services spring rest arraylist resttemplate

我已经创建了一个示例应用程序,以通过REST Webservice充分了解Spring MVC。我创建了一个托管webservice的应用程序和一个调用此Web服务并获取相关数据的客户端。我能够像String一样从客户端传递参数,并且能够以List或单个对象的形式接收数据,直到这里它变得顺畅..

现在我想从客户端传递List作为参数,并且还希望在webservice端实现以获取从客户端应用程序传递的List。任何人都可以帮忙解决这个问题吗?

请查找我的工作版的代码段。

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("appContext.xml", Client.class);
RestTemplate restTemplate = applicationContext.getBean("restTemplate", RestTemplate.class);
String url;
// retrieve a list of customers
url = "http://localhost:8080/restful-ws/app/testlist.xml";

List<CustomerBean> custList = (List) restTemplate.getForObject(url, List.class);
for (CustomerBean cust : custList) {
  System.out.println(">> cust :"+ cust.toString());}

Web服务端实现。

@RequestMapping(method=RequestMethod.GET, value="/testlist")
public ModelAndView showCustomers() {
    ModelAndView mv = new ModelAndView("customerListKey");
    List<Customer> custs = new ArrayList<Customer>();
    for (Customer customer:customers.values()) {
        custs.add(customer);
    }
    mv.addObject("allCustomers", custs);
    return mv;
}

我也有相关的文件,但如果将所有代码片段,它将变得太多。主要是我的查询是如何从客户端传递List以及如何从接收器/服务器端获取它?在两侧我只使用弹簧

提前感谢您的时间和帮助。

-Ronak。

1 个答案:

答案 0 :(得分:0)

使用CustomerBean数组

CustomerBean[] custList = restTemplate.getForObject(url, CustomerBean[].class);

从数组到列表的转换留给感兴趣的读者练习......