使用非Ajax请求更新JSF视图

问题描述 投票:0回答:1

我正在用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();
        }

    }

        }
jsf
1个回答
0
投票

无法在不使用基于“ ajax”的上传时在页面中显示上传进度

© www.soinside.com 2019 - 2024. All rights reserved.