对于我的网络应用程序,我想使用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,则不会导致错误。这告诉我,监听器从未使用过。
我正在使用tomcat 7.0.34
和icefaces 3.2.0.
我尝试了自己的实现,我仍然复制了icefaces展示的示例。两者都不起作用。
答案 0 :(得分:2)
我有同样的问题,它解决了如下: 检查包含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>