对于我的Web应用程序,我想使用ace:fileEntry
组件。
我试过了展示柜,但是没有用。没有错误。永远不会调用fileEntryListener
。该文件仍在上传(浏览器提示),但该文件未存储在服务器上。
有什么已知的问题吗?
<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.34
和icefaces 3.2.0.
我尝试了自己的实现,但仍复制了icefaces展示的示例。两者都不起作用。 最佳答案
我有同样的问题,它解决如下:
检查用ace:panel包装的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>