如何解决JSF inputfile:要上传的文件数组语法
我的语法管理上传的一系列文件是否错误?
在我的Java bean中:
private List<Part> files = new ArrayList<Part>();
public void setFiles(List<Part> files) {
this.files = files;
}
public List<Part> getFiles() {
return files;
}
在我的xhtml中:
<div class="form-group">
<h:inputFile id="file1" value="#{theBean.files[0]}">
</h:inputFile>
<p:message for="file1"/>
<ui:fragment rendered="#{fn:length(theBean.files) > 1}">
<h:inputFile id="file2" value="#{theBean.files[1]}">
</h:inputFile>
</ui:fragment>
<ui:fragment rendered="#{fn:length(theBean.files) > 2}">
<h:inputFile id="file3" value="#{theBean.files[2]}">
</h:inputFile>
</ui:fragment>
</div>
我在Java代码中定义了一个要上传的文件数组,我想在xhtml中使用数组的索引。不调用Java代码。有什么更好的解决方案并保留列表。
解决方法
您的列表为空。
System.out.println(files.size()); // 0
由于Part
是不可变的,因此最好使用可变豆列表。
public class UploadedFile {
private Part value;
// Getter+setter.
}
private List<UploadedFile> files = new ArrayList<>();
@PostConstruct
public void init() {
files.add(new UploadedFile());
files.add(new UploadedFile());
System.out.println(files.size()); // 2
}
<h:inputFile value="#{bean.files[0].value}" />
或者使用普通的香草数组代替,您可以使用固定大小对其进行预初始化。
private Part[] files = new Part[2]; // 2 items.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。