【发布时间】:2010-11-27 07:09:54
【问题描述】:
我有一个使用 Guice 连接的 Jersey 客户端。真的很喜欢:)
资源也是使用 Guice 创建的。
类似:
@Inject
class TestResource {
@Inject DataFatcher fetcher,
...
...
}
现在,DataFetcher 对象是使用 Guice 创建的,并且具有使用组合的深层嵌套 guice 创建的对象。现在,其中一些对象需要访问使用 POST 传递的参数。
我有一个 HttpServletModule 可以为我做这件事。我认为这样做是正确的。
HttpServletModule.java
Map<String, String[]> providerRequestParametersMap(HttpServletRequest reuquest) {
request.getParametersMap()
}
现在,不幸的是,Jersey 似乎已经拦截了请求并从请求参数 Map 中删除了 POST 参数。所以,我的这张地图是空的。
如何访问 Guice 中的 POST 参数?我不想直接在 Resource 中注入 MultivaledMap 的 Form,因为这需要从 Resource 一路向下传递,这会打乱我的设计。
非常感谢任何提示。我可以考虑创建一个过滤器,在 Jersey 过滤器启动之前拦截 HttpServletRequest。希望有一个更好、更简单的解决方案:)。
【问题讨论】: