Spring3MVC和多部件

Spring3MVC和多部件,spring,spring-mvc,multipart,Spring,Spring Mvc,Multipart,我使用的是Spring3的MVC框架,主要用于注释 例如,用户将上载以下内容: ------------------------------6526f0c735cd Content-Disposition: form-data; name="data" [ { "someField":"foo", "someNestedObject":{ "someDeeperField":"bar", "someResourceField":"25f33030-1

我使用的是Spring3的MVC框架,主要用于注释

例如,用户将上载以下内容:

------------------------------6526f0c735cd
Content-Disposition: form-data; name="data"

[
  {
    "someField":"foo",
    "someNestedObject":{
      "someDeeperField":"bar",
      "someResourceField":"25f33030-12ed-4636-b5f7-759d27c40f08"
      ...
    }
  },
  ...
]

------------------------------6526f0c735cd
Content-Disposition: form-data; name="25f33030-12ed-4636-b5f7-759d27c40f08"; filename="some.jpg"
Content-Type: image/jpeg

<Binary Data>
它打印出一个空列表,因为Spring已经为自己的处理消耗了部分InputStream。这是因为我正在使用一个多部分解析器,这是我需要的

我的问题是,我仍然需要访问这些部件。我不能使用
@RequestPart
注释,因为在处理
数据
部分之前,我不知道这些部分的名称。我需要能够以编程方式向Spring请求其中一个部分,而不是作为函数的参数


提前谢谢。

我找到了解决办法。我正在使用
@RequestPart(“媒体”)最终列表媒体
。二进制(媒体)数据的所有部分都有名称“媒体”,其文件名是其唯一标识符


我仍然喜欢
@RequestPart final-Map-media
,但我承认在这一点上它实际上只是语法上的糖分。

我刚刚发现您可以有一个类似
@RequestParam final-Map-params
的参数,这非常好。不幸的是,您无法执行
@RequestPart final Map parts
。您可能应该添加您的注释作为答案并接受它。这个方法看起来不错。我想你看错了,或者我不清楚<代码>@RequestPart最终映射零件不起作用。而且
@RequestParam final Map params
不允许我访问零件。啊,好吧,是的,我误解了你的评论。很抱歉
@RequestMapping("test")
public static @ResponseBody void test(
    @RequestParam("data") final String data,
    final HttpServletRequest request)
    throws Exception {

    System.out.println(request.getParts());
}