我想在我的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