我正在用jsf上传文件,我想在输出标签上显示用户进度。这是我到目前为止尝试过的方法,但是只有在上传完成后才会更新。
<h:form enctype="multipart/form-data" id="form_upload">
<p:panelGrid columns="2">
<p:outputLabel value="Total Excel count"/>
<h:outputLabel value="#{order.total_excel_count}"/>
<h:outputLabel value="Total Uploaded"/>
<h:outputLabel value="#{order.uploaded}"/>
<br/>
<br/>
<br/>
</p:panelGrid>
<p:messages closable="true" showDetail="true"/>
<p:fileUpload mode="simple" accept=".csv" value="#{order.uploadedFile}" />
<p:commandButton update="form_upload" value="Upload" action="#{order.upload}" ajax="false" id="uploader"/>
</h:form>
和我的菜豆
@ManagedBean(name = "order")
@ViewScoped
public class Upload {
int uploaded,total_excel_count;//getter setter
private UploadedFile uploadedFile;//getter setter
public void upload() {
try {
InputStream in = uploadedFile.getInputstream();
Scanner scanner = new Scanner(in);
List<String> s = new ArrayList();
while (scanner.hasNext()) {
String line = scanner.nextLine();
s.add(line);
uploaded++;
doInsert(s);//method to do insert in the db
}
scanner.close();
total_excel_count=s.size();
setExist(total_excel_count-getUploaded());
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "!Some Error Occured", "Card Upload"));
e.printStackTrace();
}
}
}
您无法在不使用基于“ ajax”的上传时在页面中显示上传进度