标准HTML
<inputtype="file">已经无法做到这一点。因此
<t:inputFileUpload>,仅能准确呈现HTML元素的毫无疑问。此外,由于安全限制,Flash也不允许选择文件夹。因此,这
<rich:fileUpload>也是毫无疑问的。
最好的选择是使用Java小程序,该小程序使用Swing
JFileChooser,它允许您选择目录。然后,您可以编写一些Java代码来收集该文件夹中的所有文件,然后通过
URLConnection或HttpClient将其上传到服务器端。然后,您只需以普通的普通HTML /
JS方式将该小程序嵌入到JSF页面中即可。相反,重新发明轮子的小程序,你也可以去为现有的第三方小程序像JumpLoader或JUpload。两者都支持上传整个目录。
最后,您必须使用Apache Commons
FileUpload将其与普通香草Servlet结合在一起,以分析来自applet的文件上传请求。为了使其与JSF交互,您可以在会话中存储一些唯一的属性,或者使用在servlet范围内也可用的会话范围内的JSF托管bean。我不确定JumpLoader或JUpload是否支持它,但是从技术上讲,可以让小程序通过Javascript更新页面(这允许JS
/ Ajax通过applet-JSF进行通信)。
不,没有想到可以完成相同工作的现有第三方JSF组件。



