如何在Resteasy中接收Map参数

  • 本文关键字:Map 参数 Resteasy resteasy
  • 更新时间 :
  • 英文 :


我想在我的restasy服务中接收这些HTTP参数(POST):

customFields[my_key]=some_value
customFields[my_key2]=some_value2

像这样的东西不工作:

@Form(prefix="customFields")
Map<String, String> customFields

…这里发生的事情是,在服务器上初始化新Map,并设置Map条目的键(即。"my_key"),但没有设置值。

有没有人知道如何处理像我这样的情况,我需要接收未知数量的字段(在Map中),但每个字段都正确结构化(HTTP Map/dictionary notation)。

这是一个已知的bug。解决方法是使用您自己的字符串包装器作为映射值类型。例如:

public class StringWrapper implements Serializable {
  private static final long serialVersionUID = 1L;
  @FormParam("value")
  public String value;
}

将你的map重新定义为:

@Form(prefix="customFields")
Map<String, StringWrapper> customFields;

然后将值传递给它作为customFields[my_key].value=some_value

最新更新