JAX-RS 混合 @FormParam 和 MultivaluedMap<String, String> formParams
JAX-RS Mixing @FormParam and MultivaluedMap<String, String> formParams
我有一个方法returns所有记录父亲记录的儿子(例如文档和行):
public Datasource<Son> getSonsFromParent( @FormParam(value = "idparent") Long idparent,
MultivaluedMap<String, String> formParams) throws Exception;
我有一个众所周知的参数,"idparent"。我只想使用 @FormParam
获取此参数。将此方法公开给其他人很有用:他们知道需要 "idparent"。
另外,我有一些未定义的参数用于排序和过滤我的数据源,例如
sort[0]=name
sort[1]=surname
filter[0][field]=name
filter[0][operator]=equal
filter[0][value]=Marc
问题是:使用@FormParam
,多值映射总是空的。
如何将 MultivaluedMap 和 @FormParam
混合在一起?
您不能在同一个 资源方法 中使用 @Formparam, MultiValuedMap, @FormDataParam,@BeanParam
。 JAX-RS 不知道哪个对象是映射请求中的信息的合适对象。
无论如何,我不明白你为什么不只使用 MultiValuedMap<String,String> formParams
而只使用 validate idParent
.
使用@Formparam
不会使这样的参数需要,你通过你的代码实现负责这个:
public Datasource<Son> getSonsFromParent( MultivaluedMap<String, String> formParams) {
String idParent = formParams.getFirst("idparent");
if(idParent == null || idParent.isEmpty()){
// return .... [idParent is required] 400 Bad Request
}
}
如果您打算向您的客户公开此类参数,这也意味着您的此 API 文档将公开所有 参数,而不仅仅是必需的一个对吗?
我有一个方法returns所有记录父亲记录的儿子(例如文档和行):
public Datasource<Son> getSonsFromParent( @FormParam(value = "idparent") Long idparent,
MultivaluedMap<String, String> formParams) throws Exception;
我有一个众所周知的参数,"idparent"。我只想使用 @FormParam
获取此参数。将此方法公开给其他人很有用:他们知道需要 "idparent"。
另外,我有一些未定义的参数用于排序和过滤我的数据源,例如
sort[0]=name
sort[1]=surname
filter[0][field]=name
filter[0][operator]=equal
filter[0][value]=Marc
问题是:使用@FormParam
,多值映射总是空的。
如何将 MultivaluedMap 和 @FormParam
混合在一起?
您不能在同一个 资源方法 中使用 @Formparam, MultiValuedMap, @FormDataParam,@BeanParam
。 JAX-RS 不知道哪个对象是映射请求中的信息的合适对象。
无论如何,我不明白你为什么不只使用 MultiValuedMap<String,String> formParams
而只使用 validate idParent
.
使用@Formparam
不会使这样的参数需要,你通过你的代码实现负责这个:
public Datasource<Son> getSonsFromParent( MultivaluedMap<String, String> formParams) {
String idParent = formParams.getFirst("idparent");
if(idParent == null || idParent.isEmpty()){
// return .... [idParent is required] 400 Bad Request
}
}
如果您打算向您的客户公开此类参数,这也意味着您的此 API 文档将公开所有 参数,而不仅仅是必需的一个对吗?