RICHFACES附件上传同时传参

来源:互联网 发布:mac设置pptp 编辑:程序博客网 时间:2024/05/16 01:16
         Richfaces在上传附件的时候,有时需要同时向BackingBean中传递参数。传参的方法如下:

        在标签中,支持 a4j:support 标签。这个标签的作用(event="onupload")即在上传动作发生以前执行。即我们可以将要传递或者初始化的参数通过 customerMemBean.setAttachInfo方法将参数初始化进BackingBean里。

       例子如下:

                                  <rich:fileUpload
                                    fileUploadListener="#{customerMemBean.uploadListener}"
                                    autoclear="true" addControlLabel="导入成员" uploadControlLabel="上传"  
                                    cancelEntryControlLabel="取消" stopControlLabel="停止"  
                                    stopEntryControlLabel="停止" noDuplicate="true" listHeight="0"
                                    listWidth="300" id="upload"  maxFilesQuantity="100" accesskey="#{formAdminInfo.corpId}"
                                    acceptedTypes="xls"  >
                                    
                                    <a4j:support event="onupload" action="#{customerMemBean.setAttachInfo}">
                                    <a4j:actionparam name="corpId"
                                            value="#{formAdminInfo.corpId}"
                                            assignTo="#{customerMemBean.corpId}"></a4j:actionparam>
                                    <a4j:actionparam name="prodId"
                                            value="#{formAdminInfo.prodId}"
                                            assignTo="#{customerMemBean.prodId}"></a4j:actionparam>
                                    <a4j:actionparam name="accBaseId"
                                            value="#{formAdminInfo.accBaseId}"
                                            assignTo="#{customerMemBean.accBaseId}"></a4j:actionparam>
                                    </a4j:support>
                                     <a4j:support event="onuploadcomplete" action="#{customerMemBean.setAttach}"  reRender="dataList,msg,msg4,msg5,msg6,msg7"  oncomplete="openExcelEidt()">
                                    </a4j:support>
                                </rich:fileUpload>
                                    
                                    
                                   
                                

     这样我们在提交附件的时候,提交以前,customerMemBean.setAttachInfo方法会被执行一次。而以下的三个参数
                                    
                                         <a4j:actionparam name="corpId"
                                            value="#{formAdminInfo.corpId}"
                                            assignTo="#{customerMemBean.corpId}"></a4j:actionparam>
                                    <a4j:actionparam name="prodId"
                                            value="#{formAdminInfo.prodId}"
                                            assignTo="#{customerMemBean.prodId}"></a4j:actionparam>
                                    <a4j:actionparam name="accBaseId"
                                            value="#{formAdminInfo.accBaseId}"
                                            assignTo="#{customerMemBean.accBaseId}"></a4j:actionparam>
                             
会被提交到BackingBean的相关字段中去。

 

Richfaces标签中还支持一些其它Ajax事件,如例子中的

<a4j:support event="onuploadcomplete" action="#{customerMemBean.setAttach}"  reRender="dataList,msg,msg4,msg5,msg6,msg7"  oncomplete="openExcelEidt()">

                                    </a4j:support>

其中(event="onuploadcomplete")标识本动作将在附件上传完成以后执行,我们可以在此方法中做一些其他的事情,如刷新页面,提示一些业务信息等等。