微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Dyna Action FormsStruts 1支持Struts多个文件上传

如何解决使用Dyna Action FormsStruts 1支持Struts多个文件上传

|| 我需要在一个页面上传多个文件。使用DynaAction表单,您必须指定每个表单的\“名称\”。我需要这是动态的。我相信我可以使用数组/列表来获取一堆文件,但是我无法将文件与任何特定的文件进行匹配。 一张地图会是完美的,但是我恐怕无法弄清楚地图的“钥匙”部分。 有任何想法吗?     

解决方法

        因此,我进行了研究并花了3个小时尝试不同的东西。网络上缺少与此相关的信息。很多未解决的问题。现在Struts 1已经是日落了,可能没有更多信息了,所以我想我会在棺材上钉上钉子... 我发现我正在做的事比我需要做的大。在这两页的帮助下: 建立一个控制器 索引属性 我发现您真正想要做的是使用Map存储FormFile对象。我发现的大多数文档都依赖于模型对象,但是我使用的是DynaForms。因此,Struts-config.xml如下所示:
<form-property name=\"theFiles\" type=\"java.util.HashMap\"/>
JSP看起来像这样:
 <c:forEach items=\"${userForm.map.roleChanges}\" var=\"changeMap\" varStatus=\"status\"> 
...
    <html:file property=\"theFile(${changeMap.key.roleName})\"  styleId=\"theFile\" />
...     
</c:forEach>
秘密之处在于属性:theFiles($ {changeMap.key.roleName})。由于theFiles是一个Map,Struts需要一个键,并且您可以使用上面的语法在地图中获取它。获取地图的Java如下:
Map fileMap =  (Map)userForm.get(\"theFile\");
这是FormFile对象的映射。甜蜜的可以。 我之所以挂断电话,是因为我以前从未使用过ArrayList / Map。它非常简单(它应该是应该的。而且,在一些Struts标记上有很多关于\“ index \”参数的讨论。我花了很长时间来弄弄它,但无法使其正常工作。我认为是因为DynaForm不确定...     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。