Java JAXRS:通过POST web服务读取FormParams数组
我有一个angular客户端,它向我发送一个对象数组(排序条件): 我的web服务界面是: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
@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;