struts2在上传文件时获得请求参数的问提 30
在struts2中可以通过Map<String,Object>map=ActionContext.getContext().getParameters();来获得表单中的...
在struts2中可以通过
Map<String, Object> map = ActionContext.getContext().getParameters();
来获得表单中的数据信息,但当提交的表单格式为enctype="multipart/form-data",即在上传文件时通过上面的方式却得不到数据,在不在对应action中声明文件字段的情况下,如何获得struts2已经封装好了的文件及其他字段信息,谢谢。 展开
Map<String, Object> map = ActionContext.getContext().getParameters();
来获得表单中的数据信息,但当提交的表单格式为enctype="multipart/form-data",即在上传文件时通过上面的方式却得不到数据,在不在对应action中声明文件字段的情况下,如何获得struts2已经封装好了的文件及其他字段信息,谢谢。 展开
2个回答
展开全部
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 格式嘛。
以前我们使用 IBM JSF 的 File Upload 标签来做,发现它自动解析的内容全在内存中,基本上每次都 OutOfMemoryError。
如果表单没有文件上传的话,不应该使用 multipart/form-data 格式嘛。
更多追问追答
追问
在struts2中确实会自动用common-fileupload把要上传的文件先传到服务器上的临时目录,但要获得该信息,得在对应action中声明该字段及set方法才能获得,但是怎么在不声明该字段的情况下获得该文件的信息
追答
既然你了解了细节,如果想自动获得你希望它把那些字段放在什么地方呢?自动的话是 set 那那个 Action 里面么?可选的方法够通用么?
我已经至少7年未使用 Struts 完全不知道现在的 Struts 2 有什么改进。只是来了解一下。估计回答不了你的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追问
我没表达清楚!在不声明 private File userimg; //上传的文件
字段的情况下怎么获得上传文件信息!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询