除了fileUploadListener之外,如何在p:fileUpload的onComplete属性上从bean调用方法

时间:2015-02-11 10:27:28

标签: jsf file-upload primefaces jsf-2.2

我想在p:fileUpload的onComplete属性上执行支持bean的方法,因为我正在处理上传操作的一些inputText值,我希望在同一个上传点击的另一个方法中将这些值添加到文件中,这里我不想使用其他按钮操作。

所以我使用p:remoteCommand使用上面的javascript代码从bean调用方法。这里我在p:fileUpload的onComplete上调用javascript函数,调用p:remoteCommand的脚本调用insertProperty()方法。但是没有调用insertProperty()。这是怎么造成的,我该如何解决?提前谢谢。

javascript是

<script type="text/javascript">
                        function addProperties(){                           
                            lazyload();    
                        }                        
       </script>

</h:head>

我的代码是 `

<h:body>

    <h:form id="mainformId"
        style="background: #A9CEEA !important;margin-top:5px !important;">

        <div>
            <h:form id="uploadformId">
             <p:messages id="msg"/>
             <p:remoteCommand name="lazyload"   process="@this"
                                     actionListener="#{hubDocsBean.insertProperty}" >
                    </p:remoteCommand>
                <p:panelGrid style="width:100%;">
                    <p:row>
                        <p:column colspan="4">
                            <p:fileUpload fileUploadListener="#{hubDocsBean.fileUpload}"
                                dragDropSupport="false" 
                                allowTypes="/(\.|\/)(txt|doc|docx|xls|xlsx|pdf)$/" 
                                update=":mainformId:tableformId:docTableId, msg" multiple="false"
                                process="IagencyId,ImarketId,IvendorId,IstationId" mode="advanced" sizeLimit="52428800" oncomplete="addProperties();" />

                        </p:column>
                    </p:row>
                    <p:row>
                        <p:column>
                            <h:outputText value="Agency" />
                            <p:spacer width="5"></p:spacer>
                            <p:inputText value="#{hubDocsBean.inputagency}" id="IagencyId" />

                        </p:column>

                        <p:column>
                            <h:outputText value="Market" />
                            <p:spacer width="5"></p:spacer>
                            <p:inputText value="#{hubDocsBean.inputmarket}" id="ImarketId" />

                        </p:column>

                        <p:column>
                            <h:outputText value="Vendor" />
                            <p:spacer width="5"></p:spacer>
                            <p:inputText value="#{hubDocsBean.inputvendor}" id="IvendorId" />


                        </p:column>
                        <p:column>
                            <h:outputText value="Station" />
                            <p:spacer width="5"></p:spacer>
                            <p:inputText value="#{hubDocsBean.inputstation}" id="IstationId" />

                        </p:column>
                    </p:row>`

1 个答案:

答案 0 :(得分:-2)

顺便说一下,您不需要额外的Javascript。你可以使用:

的onComplete =&#34; lazyload()&#34;

而不是

的onComplete =&#34; addProperties();&#34;