Spring3MVC和多部件
我使用的是Spring3的MVC框架,主要用于注释 例如,用户将上载以下内容: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
------------------------------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());
}