Jsf 2 Primefaces无法在模式advance jsf 2.0下工作
我正在尝试使用JSF2.0中的PrimeFaces4.0上传文件。 在我配置pom.xml和web.xml之后,它可以使用mode=simple工作,我可以很好地选择一个文件。 我的问题是在mode=advance中上载多个文件,它在UI中显示上载面板,但javascript不工作。 我不会在我的jsf页面中添加任何js库来避免与primefaces js的冲突。 你有什么建议吗 如果我不能使用mode=advance的primefaces,那么在JSF2.0中我应该使用什么来上传多个文件呢 请帮忙。 -XHTML:Jsf 2 Primefaces无法在模式advance jsf 2.0下工作,jsf-2,primefaces,camunda,Jsf 2,Primefaces,Camunda,我正在尝试使用JSF2.0中的PrimeFaces4.0上传文件。 在我配置pom.xml和web.xml之后,它可以使用mode=simple工作,我可以很好地选择一个文件。 我的问题是在mode=advance中上载多个文件,它在UI中显示上载面板,但javascript不工作。 我不会在我的jsf页面中添加任何js库来避免与primefaces js的冲突。 你有什么建议吗 如果我不能使用mode=advance的primefaces,那么在JSF2.0中我应该使用什么来上传多个文件呢 请
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{helloBean.upload}"
mode="advanced" dragDropSupport="false" multiple="true"
sizeLimit="100000" fileLimit="3"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
</h:form>
</h:body>
</html>
web.xml
<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>
<!-- ############################################# -->
<!-- # File upload # -->
<!-- ############################################# -->
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
错误发生在文件下面。
http:/…/JavaServerFaces/javax.faces.resource/fileupload/fileupload.js.xhtml?ln=primefaces&v=4.0
我已经上传了mode=simple successful,但没有成功上传mode=advance。
我缺少什么?我建议将表格提交给iframe。因为p:fileUpload mode=simple必须与提交表单一起使用。该方法可以解决浏览器上的页面重载问题 下面是示例代码。 XHTML 这是一个使用mode=advance进行多文件上传的示例 XHTML
p:简单模式下的文件上载不支持多个文件上载。您应该选择advance,以防多次上传。请发布所有使用mode=advance.hi的代码,我知道mode=simple不支持上传多个文件。我的意思是每次用户单击添加上载命令按钮时添加一个。它将重新加载页面并显示列表,这种方式也可以上载多个文件,但缺点是每次点击命令按钮都会重新加载页面。我如何做到这一点而不再次加载jsf页面?源代码我将在TimMORO上发布。嗨,我会考虑的。你能用mode=advance给我发一些简单的上传源代码吗?xhtml只需要有表单上传。我想参考一下。Thanks@JavaDeveloper尝试将commons fileupload、commons io分别更改为1.2.1、1.4版,因为这些版本已经过测试,并且已知正在使用PrimeFaces 4.0,还可以从依赖项中删除commons-fileupload-1.2-sources.jar、commons-io-2.4-sources.jar、PrimeFaces-4.0-sources.jar,上传并取消。我选择一个文件,点击上传按钮,然后它看起来像提交整个表单。在场景中,我有一个10个输入字段的表单,一个上传面板和一个提交表单。当我点击上传按钮时,它会提交整个表单并完成提交功能。我们能不能让上传按钮只处理上传文件的handleFileUpload?所以当我点击submit按钮时,就是提交整个表单的时候了。通常情况下,p:fileUpload In mode=advance不提交整个表单。如何设置更新属性。我很抱歉我的例子,它应该使用process=@this和process=@this来更新和处理自己。根据这2个属性,from不应该提交整个表单。祝你好运
<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>
<!-- ############################################# -->
<!-- # File upload # -->
<!-- ############################################# -->
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<finalName>JavaServerFaces</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
TypeError: $(...).addclass is not a function
$(this).addclass('ui-state-focus');
<h:form enctype="multipart/form-data" target="my_iframe">
<p:fileUpload value="#{fileUploadView.file}" mode="simple" />
<p:commandButton value="Submit"
ajax="false"
actionListener="#{fileUploadView.upload}" />
</h:form>
<iframe name="my_iframe" style="display:none;"></iframe>
@ManagedBean
public class FileUploadView {
private UploadedFile file;
public void upload() {
if(file != null) {
System.out.println(file.getFileName());
// TODO Auto-generated method stub
}
}
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
}
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}"
mode="advanced"
dragDropSupport="false"
multiple="true"
update="@this"
process="@this"
sizeLimit="100000"
fileLimit="3"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
</h:form>
@ManagedBean
public class FileUploadView {
private UploadedFile file;
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
public void handleFileUpload(FileUploadEvent event) {
System.out.println(event.getFile().getFileName() + " is uploaded.");
// TODO Auto-generated method stub
}
}