我正在使用primefaces 3.3.1和liferay 6。
在我的portlet中,我想为primefaces添加fileUpload。但每当我的页面加载时,这个primefaces组件都不会通过firebug看到。我需要让它的显示屏阻止。
此外,fileUpload下面包含javascript方法或ajax的任何组件都无法正常工作。
我注意到,只要我的页面加载,就会在firebug中显示一个错误,例如
this.form.fileUpload is not a function
我想由于这个错误,我的fileUpload无效。但我无法修复它。
<p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}" mode="advanced" fileLimit="3"/>
答案 0 :(得分:1)
将您的primefaces升级到3.5版并将commons-fileupload添加到您的项目
答案 1 :(得分:0)
我认为这是因为你没有在项目库中添加commons-fileupload和commons-io。另外,不要忘记在web.xml中定义FileUploadFilter。
让我告诉你我之前如何在我的primefaces上传文件,希望这个例子可以解决你的问题。
我的xhtml页面:
<p:fileUpload allowTypes="/(\.|\/)(csv)$/" fileUploadListener="#{fileBean.handleFileUpload}"/>
我的FileBean.java:
public class FileBean {
private UploadedFile file;
public void handleFileUpload(FileUploadEvent event) throws Exception {
file = event.getFile();
InputStream input = file.getInputstream();
OutputStream output = new FileOutputStream(new File("D:/UploadedFile/", file.getFileName()));
IOUtils.copy(input, output);
}
将此添加到您的web.xml:
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
正如我之前所说,将commons-fileupload和commons-io添加到项目库中。
答案 2 :(得分:0)
修复了Liferay Portal 6.0.x中的此问题。
您可以将此代码添加到web.xml并尝试吗?
<!-- Workaround for PrimeFaces 3.2: -->
<context-param>
<param-name>com.liferay.faces.bridge.primeFileUploadForceResourceURL</param-name>
<param-value>true</param-value>
</context-param>
Here is link了解更多信息。
答案 3 :(得分:0)
在尝试了关于web.xml,pom.xml的所有其他内容之后......我回到了显而易见的事情: - )
也许您只是忘记在上传元素周围打一个表单:
<h:form enctype="multipart/form-data">
<p:fileUpload mode="simple" value="#{mgr.file}"/>
<p:commandButton value="Hochladen" ajax="false" onclick="start();"
action="#{mgr.uploadBescheid(bescheidTyp)}" update="growl"/>
</h:form>
没有这一点,它就不会起作用......