【发布时间】:2012-03-12 17:45:10
【问题描述】:
我正在尝试使用rich:fileUploader 上传文件,但无论如何它都不会触发uploadListener。
这是代码,如果缺少什么,请告诉我:)
<f:view>
<a4j:loadScript src="resource://jquery.js" />
<h:form id="uploadFileForm" prependId="false">
<rich:fileUpload immediateUpload="true"
listHeight="150px;" noDuplicate="true" listWidth="350px;"
maxFilesQuantity="1" locale="de"
fileUploadListener="#{paramFileUpload.fileUploadsListener}">
</rich:fileUpload>
</h:form>
</f:view>
public void fileUploadsListener(UploadEvent event) {
LOGGER.info("In ActionListener of file upload");
UploadItem item = event.getUploadItem();
LOGGER.info("item : " + item.getFileSize() + ", " + item.getContentType() + ", " + item.getData());
if(item.getFile() != null) {
LOGGER.info("File name and size : " + item.getFile().getPath() + ", " + item.getFile().getTotalSpace());
}
}
这是在 web.xml 中
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
页面加载后,firebug控制台显示错误如下:
parentForm is null
ProgressBar={};ProgressBar=Class.creat...' {parentForm=parentForm.parentNode;}
当从文件浏览器中选择文件时,
this.progressBar is undefined
if(this.labelMarkup){var progressData=...._fileSizeScriptTimeoutId=undefined;}
【问题讨论】:
-
我的文件上传代码和你的很像,我在 web.xml 中有相同的配置。确认您的页面中没有嵌套表单。
-
不,页面中没有嵌套表单。我仍然不知道这里可能出了什么问题:(
-
很奇怪。顺便说一句,您是否测试过只有
fileUpload组件的页面?也许它只是脚本的配置,检查你的 web.xml 上下文参数org.richfaces.LoadStyleStrategy我设置了值ALL。
标签: jsf file-upload richfaces jsf-1.2