struts2在上传文件时获得请求参数的问提 30

在struts2中可以通过Map<String,Object>map=ActionContext.getContext().getParameters();来获得表单中的... 在struts2中可以通过
Map<String, Object> map = ActionContext.getContext().getParameters();
来获得表单中的数据信息,但当提交的表单格式为enctype="multipart/form-data",即在上传文件时通过上面的方式却得不到数据,在不在对应action中声明文件字段的情况下,如何获得struts2已经封装好了的文件及其他字段信息,谢谢。
展开
 我来答
jamxval
2013-07-16 · TA获得超过6821个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1398万
展开全部
struts 会自动使用 smartupload 或 apache 那个文件上传的 API 把 Form data 包装么?如果没有你可以还是要使用 apache 的 FileUpload 组件 API 来做。一般 URL encoded 会自动解析参数,因为它本身就是 URL encoded,只需要 split 一下就得到了参数清单,但 form-data 不同,格式复杂一点,有些API 从性能考虑,并不会立即解析,因为可能解析出内容但却不知道你怎么使用它,却需要把文件内容那么大的内存占用了。因此你得自己解析,或借助 file upload 之类的 API 来解析你需要的内容。

以前我们使用 IBM JSF 的 File Upload 标签来做,发现它自动解析的内容全在内存中,基本上每次都 OutOfMemoryError。

如果表单没有文件上传的话,不应该使用 multipart/form-data 格式嘛。
更多追问追答
追问
在struts2中确实会自动用common-fileupload把要上传的文件先传到服务器上的临时目录,但要获得该信息,得在对应action中声明该字段及set方法才能获得,但是怎么在不声明该字段的情况下获得该文件的信息
追答
既然你了解了细节,如果想自动获得你希望它把那些字段放在什么地方呢?自动的话是 set 那那个 Action 里面么?可选的方法够通用么?

我已经至少7年未使用 Struts 完全不知道现在的 Struts 2 有什么改进。只是来了解一下。估计回答不了你的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8c1745617
2013-07-16 · TA获得超过980个赞
知道小有建树答主
回答量:935
采纳率:0%
帮助的人:758万
展开全部
追问
我没表达清楚!在不声明 private File userimg; //上传的文件
字段的情况下怎么获得上传文件信息!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式