- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是想使用 JAX-RS 2 将映射传递到我的 Web 服务上的 @GET 方法。我想知道这是否可能以及如何实现,即使 GET 的方法没有任何主体。
像这样:
@GET
@Path(??)
@Produces({"application/xml", "application/json"})
public User find(@PathParam(??) HashMap<String, String> map) {
// work on map !
}
我已经看到它存在 MultiValued 映射,但它用于参数。请问如何传递 map ?
提前致谢!
最佳答案
您需要在您的类路径中包含 Jackson jars(或任何其他 XML/JSON 到 Map 映射器)出于美观、惯例和安全原因,您可能不想在 @PathParam
上传递 map 。您通常传递一个 JSON/XML 对象作为请求主体,例如使用 POST/PUT
@POST
@Path("/anypath")
@Consumes({"text/xml", "application/json"})
public User find(HashMap<String, String> map) {
//magic should happen
}
然后只需传递内容类型为 application/json 或 text/xml 的 POST/PUT 请求例如
{
"key1": "value1"
"key2": "value2"
}
如果类路径中有正确的 Jackson/Moxy 等映射器,它会为您将 JSON/XML 格式转换为 java.util.Map
(甚至是 POJO)
@Produces
仅在您还打算返回 XML/JSON 时才需要,但由于您期望 XML 或 JSON,因此使用 @Consumes
是有意义的在这里。
但是,如果您必须在 GET 请求中传递 JSON 对象,例如作为请求参数,看看这个问题:Convert JSON query parameters to objects with JAX-RS
附注对于 xml,mime 是 text/xml
而不是 application/xml
关于get - JAX-RS 2 和 Jersey 2 : how to pass an (hash)map on a GET request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293527/
我是一名优秀的程序员,十分优秀!