【发布时间】: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