【问题标题】:Use external button for rich:fileUpload使用外部按钮丰富:fileUpload
【发布时间】:2011-11-29 10:54:31
【问题描述】:

我正在使用丰富的组件:fileUpload 将文件上传到我的服务器,问题是这些文件与用户填写的表单一起出现,所以我想使用一个外部按钮来执行此操作。

用户选择要上传的文件,填写表格,然后点击页面底部的“提交”按钮。这将使用表单上传文件。我试过这样:

我可以隐藏 fileUpload 面板内的按钮,这样用户就不会点击它。

    <rich:fileUpload id="fileUploadId"
        style="width: 100%; height: 130px;"
        fileUploadListener="#{documentsBean.listener}"
        maxFilesQuantity="1"
        uploadButtonClass="display-none"
        uploadButtonClassDisabled="display-none">
    </rich:fileUpload>

我用按钮尝试的是

<a4j: commandButton  id="uploadFormButton"
        value="Attach"
        onclick="#{rich:component('fileUploadId')}.submitForm();"
        oncomplete="#{rich:component('fileUploadId')}.clear(); return false;"/>

但它不起作用。

【问题讨论】:

    标签: java jsf richfaces web


    【解决方案1】:

    我不知道是否有办法完全按照您的意愿行事,但这是您可以使用的另一种解决方案:

    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:rich="http://richfaces.org/rich"
        xmlns:a4j="http://richfaces.org/a4j"
        xmlns:st="http://spectotechnologies.com/jsf"
        xmlns:t="http://myfaces.apache.org/tomahawk">
    
        ...
    
        <h:form enctype="multipart/form-data">
            ... your fields ...
    
            <t:inputFileUpload value="#{bean.document}" />
    
            <h:commandButton value="Submit" actionListener="#{bean.onButtonSubmitClick}" />
        </h:form>
    </html>
    

    还有豆子:

    @ManagedBean
    @RequestScoped
    public class Bean
    {
        private UploadedFile m_oDocument;
    
        public void setDocument(UploadedFile p_oDocument)
        {
            m_oDocument = p_oDocument;
        }
    
        @UploadedFileNotEmpty
        @UploadedFileSize(max="10000000")
        @UploadedFileExtension(accept="doc,docx,pdf,txt,rtf,xls,xlsx,zip,rar,jpg,jpeg,jpe,bmp,gif,png,csv,ppt,pptx,odp,pic,odt,ods")
        public UploadedFile getDocument()
        {
            return m_oDocument;
        }
    
        public void onButtonSubmitClick(ActionEvent p_oEvent)
        {
            ...
        }
    }
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2019-07-31
      • 2011-07-15
      • 2011-03-10
      • 2021-08-16
      • 2023-03-06
      • 2012-07-30
      相关资源
      最近更新 更多