Java 如何在url请求中发送数组

Java 如何在url请求中发送数组,java,web-services,spring,url,spring-mvc,Java,Web Services,Spring,Url,Spring Mvc,我的要求如下: 我想给出演员的名字,开始日期,结束日期,以及他在那个时期所演的所有电影 因此,我的服务请求是这样的 http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505 现在,我想改进它。 我想给出一个开始日期、结束日期和不止一个演员的名字,并想看看那个时期所有演员的电影 我不知道我的url应该如何支持这样的事情 我正在使用spring编写一个基于java的w

我的要求如下:

我想给出演员的名字,开始日期,结束日期,以及他在那个时期所演的所有电影

因此,我的服务请求是这样的

  http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505
现在,我想改进它。 我想给出一个开始日期、结束日期和不止一个演员的名字,并想看看那个时期所有演员的电影

我不知道我的url应该如何支持这样的事情

我正在使用spring编写一个基于java的web服务

下面的代码是为了支持一个参与者

   @RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
    public void getJson(@RequestParam("name") String ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }
我想的一个解决方案是使用%符号来分隔演员姓名。例如:

 http://localhost:8080/MovieDB/GetJson?name=Actor1%Actor2%Actor3&startDate=20120101&endDate=20120505
现在,在控制器中,我将用%解析名称字符串,并返回所有参与者的名称

这是一个很好的方法还是有一个标准的方法

谢谢

用逗号隔开:

http://localhost:8080/MovieDB/GetJson?name=Actor1,Actor2,Actor3&startDate=20120101&endDate=20120505
或:

或:

无论哪种方式,您的方法签名都需要:

@RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
public void getJson(@RequestParam("name") String[] ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }

我认为这适合3到4个演员。但如果您想传入100个参与者,也许可以使用POST,然后传入一个javascript对象。对于每个参与者,对象可以有名称-值对。你怎么认为?很抱歉给你一个粗略的答复,但是如果你有1000个大小的数组,那么你就不能把所有的东西都写出来??关于这三种不同的URL编写方法,您是否可以指向“Spring文档”链接?方法一(用逗号分隔)与其他两种不同。在Java应用程序上尝试(服务器端由undertow支持),如果您传递
name=Actor1,Actor2,Actor3
,服务器将不会获得
name
参数的数组,而是获得一个字符串:
Actor1,Actor2,Actor3
参数。另外两个不同,它们都使用一个值数组提供
name
参数:
[“Actor1”、“Actor2”、“Actor3”]
。根据,许多其他框架也将方法一视为单个字符串查询参数,而不是使用逗号分隔值的数组,您可以将它们作为列表请求参数接收
http://localhost:8080/MovieDB/GetJson?name[0]=Actor1&name[1]=Actor2&name[2]=Actor3&startDate=20120101&endDate=20120505
@RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
public void getJson(@RequestParam("name") String[] ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }