Java JAXRS:通过POST web服务读取FormParams数组

Java JAXRS:通过POST web服务读取FormParams数组,java,jax-rs,resteasy,ejb-3.2,Java,Jax Rs,Resteasy,Ejb 3.2,我有一个angular客户端,它向我发送一个对象数组(排序条件): 我的web服务界面是: @POST @Path("{pathcode}/grid") @Produces(value = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @Consumes(value = {MediaType.APPLICATION_FORM_URLENCODED}) public GridResponse<FileObject> g

我有一个angular客户端,它向我发送一个对象数组(排序条件):

我的web服务界面是:

@POST
@Path("{pathcode}/grid")
@Produces(value = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Consumes(value = {MediaType.APPLICATION_FORM_URLENCODED})
public GridResponse<FileObject> getFileList(
        @HeaderParam(value = "Authorization") String tokenAuth,
        @PathParam(value = "pathcode") String pathCode,
        @FormParam(value = "sort") List<SortingClause> sorts
        ) 
throws Exception;
@POST
@路径(“{pathcode}/grid”)
@产生(值={MediaType.APPLICATION\u JSON,MediaType.APPLICATION\u XML})
@使用(值={MediaType.APPLICATION\u FORM\u URLENCODED})
公共GridResponse getFileList(
@HeaderParam(value=“Authorization”)字符串令牌身份验证,
@PathParam(value=“pathcode”)字符串路径码,
@FormParam(value=“sort”)列出排序
) 
抛出异常;
我使用RESTEasy作为jax rs实现

如果参数名类似于“sort[i][k]”,如何读取参数数组

为什么我不能使用
多值hashmap
作为参数

public GridResponse<FileObject> getListaFile(
        @HeaderParam(value = "Authorization") String tokenAuth,
        @PathParam(value = "pathcode") String pathCode,
        MultivaluedHashMap<String,String> formparam
        ) 
throws BssException;
公共网格响应getListaFile( @HeaderParam(value=“Authorization”)字符串令牌身份验证, @PathParam(value=“pathcode”)字符串路径码, 多值DhashMap formparam ) 性感觉障碍;
MultivaluedHashMap的导入是什么?另外,您正在使用什么JAX-RS实现?谢谢@vikarjramun的评论。我编辑了这个问题。javax.ws.rs.core.MultivaluedHashMap不起作用,但javax.ws.rs.core.MultivaluedMap起作用!当您显示(未编码的)json媒体类型时,为什么接口声明使用URL编码的表单?@Daniellicitra就是您的问题,为什么
MultivaluedMap
不起作用,而
MultivaluedMap
起作用?如果是这样,我认为问题在于RESTEasy如何在内部实现它。RESTEasy可能有一个
MessageBodyProvider
,只有当参数是
MultivaluedMap
时才会调用它
MultivaluedHashMap
可能仅用于(或RESTEasy)需要实例化
MultivaluedMap
的情况(例如在单元测试中或框架实际构造此对象时)。如果这回答了您的问题,请告诉我。是的@vikarjramun,使用
多值哈希映射更改
多值哈希映射
解决了我的问题
多值哈希映射
的导入是什么?另外,您正在使用什么JAX-RS实现?谢谢@vikarjramun的评论。我编辑了这个问题。javax.ws.rs.core.MultivaluedHashMap不起作用,但javax.ws.rs.core.MultivaluedMap起作用!当您显示(未编码的)json媒体类型时,为什么接口声明使用URL编码的表单?@Daniellicitra就是您的问题,为什么
MultivaluedMap
不起作用,而
MultivaluedMap
起作用?如果是这样,我认为问题在于RESTEasy如何在内部实现它。RESTEasy可能有一个
MessageBodyProvider
,只有当参数是
MultivaluedMap
时才会调用它
MultivaluedHashMap
可能仅用于(或RESTEasy)需要实例化
MultivaluedMap
的情况(例如在单元测试中或框架实际构造此对象时)。如果这回答了您的问题,请告诉我。是的@vikarjramun,用
多值映射更改
多值散列映射
解决了我的问题
public GridResponse<FileObject> getListaFile(
        @HeaderParam(value = "Authorization") String tokenAuth,
        @PathParam(value = "pathcode") String pathCode,
        MultivaluedHashMap<String,String> formparam
        ) 
throws BssException;