【问题标题】:Apart from fileUploadListener,how to call a method from bean on onComplete attribute of p:fileUpload [duplicate]除了fileUploadListener,如何在p:fileUpload的onComplete属性上调用bean的方法[重复]
【发布时间】:2015-02-11 10:27:28
【问题描述】:

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

所以我使用 p:remoteCommand 使用上面的 javascript 代码从 bean 调用方法。在这里,我在 p:fileUpload 的 onComplete 和调用 p:remoteCommand 的脚本上调用 javascript 函数,后者又调用 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>`

【问题讨论】:

  • 你好像有嵌套表单,这是非法的
  • 非常感谢您的回复,它成功了。

标签: jsf file-upload primefaces jsf-2.2


【解决方案1】:

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

oncomplete="lazyload()"

而不是

oncomplete="addProperties();"

【讨论】:

  • 这可能是一个简化的例子......这不是问题的答案,而是评论
猜你喜欢
  • 1970-01-01
  • 2012-12-24
  • 2012-01-25
  • 1970-01-01
  • 2015-09-24
  • 2014-05-30
  • 2011-07-25
  • 1970-01-01
  • 2021-03-20
相关资源
最近更新 更多