2013-02-06 17 views
0

對於我的web應用程序,我想使用ace:fileEntry組件。icefaces ace:fileEntry不起作用

我試過展示櫃,但它不起作用。沒有錯誤。 fileEntryListener永遠不會被調用。該文件仍在上傳(瀏覽器sais),但該文件不存儲在服務器上。

有沒有什麼知道的問題呢?

<h:form id="fileUploadForm"> 

    <h:panelGrid id="fileUploadGrid" columns="2" width="100%" styleClass="textEntryInputTable"> 

    <ace:fileEntry id="fileEntryComp" 
            label="File Entry" 
            relativePath="uploaded" 
            fileEntryListener="#{ticketDetailListBean.listener}"/>        

     <h:commandButton id="submit" value="Datei uploaden" type="submit" styleClass="icebutton" /> 

     <h:message id="msg" for="fileUploadForm:fileEntryComp" infoClass="infoMessage" errorClass="errorMessage"/> 
     <h:outputFormat value=""></h:outputFormat> 

    </h:panelGrid> 

</h:form> 

屬性「fileEntryListener」可以設置爲任何值。沒關係,如果bean和方法是存在的話。如果我引用不存在的bean,則不會導致錯誤。這告訴我,Listener從未被使用過。

我正在使用tomcat 7.0.34icefaces 3.2.0.我嘗試了我自己的實現,並且我仍然複製了icefaces showcase的示例。兩者都不起作用。

+0

感謝您的回覆。我在一個簡單的jsf網站上試了一下,它只包含了fileupload。沒有彈出菜單或菜單。我正在直接導航到手動和手動。 jsf網站是通過一個模板文件來實現的,該文件與其他託管的bean進行通信。這可能是一個問題嗎? – Nils

+0

從給出的細節無法弄清楚的問題,但我建議你檢查項目代碼/依賴/配置..等等,並休耕這些線程... [thread1](http://www.icesoft。 org/JForum/posts/list/19375.page#sthash.rg1m4T9H.dpbs),[thread2](http://www.icesoft.org/JForum/posts/list/21124.page#sthash.bkpM5QWz.dpbs), [thread3](http://www.icesoft.org/JForum/posts/list/18467.page#sthash.jeMIvbHR.dpbs),[thread4](http://www.icesoft.org/JForum/posts/list /18317.page#sthash.7winfAnp.dpbs)。 –

+0

我想我得到了解決方案。問題是我使用Icefaces來實現新的網站。但我已經支持網站。所有網站(也包括Icefaces網站)均通過Struts過濾器。那仍然是問題.. – Nils

回答

2

我有同樣的問題,它解決如下: 檢查FileEntry的標籤包裹着的王牌:面板

<ace:panel> 
    <ace:fileEntry id="signature-file-entry" 
        relativePath="/files/" 
        maxFileCount="1" 
        maxFileCountMessage="#{msg.concurrentFileUploadLimit}" 
        fileEntryListener="#{userManagement.signatureUploadListener}" 
        maxFileSize="6291456" 
        maxFileSizeMessage="#{msg.maxFileSizeMessage}" 
        maxTotalSize="18874368" 
        maxTotalSizeMessage="#{msg.maxTotalSizeMessage}" 
        required="true" 
        requiredMessage="#{msg.requiredMessage}" 
        useOriginalFilename="true" 
        useSessionSubdir="true" 
        tabindex="6"/> 
    <ace:message for="signature-file-entry" showSummary="true" showDetail="false" /> 
    <h:commandButton value="#{msg.sendFile}" type="submit" id="uploadAFile" /> 
</ace:panel> 

檢查你的web.xml中,它應該包含以下標籤:

<context-param> 
     <param-name>org.icefaces.mandatoryResourceConfiguration</param-name> 
     <param-value>fileEntry</param-value> 
    </context-param> 

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/icefaces/*</url-pattern> 
</servlet-mapping>