文件管理 · 2022年9月30日

struts2上传文件无返回参数|使用struts2如何实现文件上传

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

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传list到前台显示没数据。

检查一下跳转方式,1. 需要保存前一个action的属性信息时使用: <result type= "chain ">action2</result> 2. 不保存前一个action的参数可以用这种方法: <result type= "redirect-action "> ActionName </result>

⑶ 为什么我的struts2文件上传的时候没有现实信息:removing file…这样的信息,文件能正常上传没有任何报错

struts2的上传是将文件上传在一个临时目录中,Action中的那个File 对象就是这个临时文件,上传完成后就会删除这个临时文件

⑷ struts2中上传文件时报404错误

今天在编程的时候,我遇到了No result defined for action and result input的错误,这个错误想必大家都有遇到过吧,我今天发了很长时间弄这个错误,我以为我的Action函数出错了想调试,但是程序就是不进入断点,上网查资料,有的说路径错误啦,然后我找我的路径错误,搞了半天还是没发现有路径问题。然后我给我的属性的get方法都弄上了断点,我发现了问题,现在跟大家分享。 这个错误就是说没有为返回的input定义,可是有时候我们不一定要这个鬼东西,然而在Action中出错的话,默认就返回了这个input了,这时,我们在struts的<result>中定义的话,就出现No result defined for action and result input的错误了。 引起这个错误的原因是很多的,路径错误也是其中的一种,我这里的问题是,我的页面上的类型和我定义的属性的类型不一致,我的属性是int型的,但是在页面上输出的时候加了一个逗号,用了分割千位的,结果就出现了这个问题了。 这个问题好像在strtus2.1以上版本才出现, 这个问题的上面的解决方案已经把原因说的差不多了,在实际应用中,我估计大部分情况应该都是在action里面定义了int或者别的什么类型的变量,然后指望struts的自动填装把post来的数据转换,这时容易出现转换失败,从而导致了这个错误,所以查这个错误,可以利用ff的httpfox来查看实际post的参数是什么,然后和action中对应的属性对比,看那个会出现转换错误。 淡然另一种就是上面说的在所有的set 中加入断点,总能看到是哪个方法执行失败的。 另外还有种就是页面提交了同一个名字的参数多个,比如写道username 123 username 123 permissions 123 info 31234 页面冲提交了了两个username ,而我的后台却只写了一个String username,这样同样会出错,这个是利用httpfox看的, 其实最好的是action中的和post相对应属性都设置成为String类型,省事,也不会再出现这个错误了,然后在execute中执行转换。这样也方便差错

⑸ struts2文件上传,值为null

应该是可行的。你在看看是以什么方式请求的,文件上传需要post 提交,如果不是这个 我也不知道了!

⑹ java struts2 action 验证过后返回地址栏参数不见

在action中添加一个方法,validate(),然后把传过来的类设置到request里面去就可以了@Overridepublic void validate() {//add something to ActionContext }

⑺ 使用struts2如何实现文件上传

新建Web Project,在WebRoot下新建upload文件夹

在WebRoot下新建upload.jsp,上传界面

编写回上传成功、失败的提答示界面。

在WebRoot下新建uploadError.jsp

在WebRoot下新建uploadSuccess.jsp

编写Action类

配置struts.xml文件,重置fileUpload拦截器。

测试,测试完成之后在tomcat下面webapps目录下找到项目对应的文件夹下的upload下查看

⑻ Struts2中JSON不返回值,也不报错,Action的方法能执行

让action返回null 即不经过struts2的返回处理,把需要得到的json直接得到response.write(json)就ok了

⑼ struts2文件上传为什么获取不到表单值

你的表单名字写的不对,上传文件名,是有规则的。 Action: private File attachment; private String attachmentFileName; private String attachmentContentType; private String description; private ServletContext servletContext;jsp:<s:form action="FileUpload" method="post" enctype="multipart/form-data"><s:textfield name="description" label="Description"></s:textfield><s:file name="attachment" label="Select File"></s:file><s:submit value="Upload"></s:submit></s:form>