我已经为文件上传创建了一个简单的qazxsw poi应用程序,而不是像这样创建一个qazxsw poi输入文件
jsf
我想以编程方式创建它并将其添加到表单中。例如:jsf
Primefaces文档建议使用FileUpload组件:
<h:form id="fileToUploadForm" enctype="multipart/form-data">
<h:inputFile id="fileToUpload" required="true" f5:multiple="multiple"
requiredMessage="No file selected ..." onchange="fileSelected();"
render="FilesTable"/>
<h:commandButton type="button" onclick="uploadFile()" value="Upload" />
</h:form>
和htmlform.getChildren().add(<File Component>)
p:fileUpload
,multiple="true"
,sizeLimit
和fileLimit
XHTML文件:
allowTypes
ManagedBean:
dragDropSupport
<h:form>
<p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}" mode="advanced"
dragDropSupport="false" multiple="true" update="messages" fileLimit="3"
sizeLimit="100000 allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:growl id="messages" showDetail="true" />
</h:form>
因为我之前使用的是jsf 2.1,所以我找不到这个类,
@ManagedBean
public class FileUploadView {
private UploadedFile file;
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public void upload() {
if(file != null) {
FacesMessage message = new FacesMessage("Succesful", file.getFileName() +
" is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
public void handleFileUpload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() +
" is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
是jsf API 2.2中的类和
https://www.primefaces.org/showcase/ui/file/upload/multiple.xhtml
是我在omnifaces中作为替代品发现的课程。