javascript - 未捕获的 TypeError:this.jq.fileupload 在使用 mode="advance" ajax 文件上传器时不是 Prime faces 4.0 中的函数
问题描述
我使用了 jsf 2.2.x 版本和 primefaces 4.0。我还使用了 jquery 版本,例如 1.10.1 和 2.1.4
<h:form id="uploadForm" enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{bean.handleFileUpload}"
mode="advanced" dragDropSupport="false"
update="messages"
sizeLimit="10000000"
fileLimit="3"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:growl id="messages" showDetail="true" />
</h:form>
以及我使用如下标题。
<h:head>
<title><h:outputText value="#{userBean.title}"/> - Dashboard</title>
<meta http-equiv="keywords" content="xyz"/>
<meta http-equiv="description" content="Dashboard"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
</h:head>
head 标签之间没有任何其他链接或脚本标签。只有样式标签。
web.xml
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>bootstrap</param-value>
</context-param>
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>commons</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>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>51200</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>/tmp/</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
Bean.java
@ManagedBean(name = "bean")
@ViewScoped
public class Bean {
public void handleFileUpload(FileUploadEvent event) {
System.out.println("invoked");
FacesMessage message = new FacesMessage("Succesful",
event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
上面的代码是从整个代码中提取的一部分。请帮我解决这个问题。谢谢!
解决方案
推荐阅读
- javascript - 在 componentDidMount() 中重新加载脚本
- android - 在可绘制文件夹中添加的普通图像不会在三星设备中显示 - Android
- spring - 禁用 RestTemplate 转义
- robotframework - 了解如何在 Robot Framework 中编写测试数据
- asp.net-core - 在没有 Visual Studio 的情况下使用 Kestrel 运行 ASP.NET Core 项目
- css - css 表与 bootstrap 不一致
- python - 如何在python中的pandas中添加缺少值的列
- html - 如何在 div 或 span 中制作无单词空间的单词,以便所有单词都以 div 宽度显示
- spring-boot - 部署新版本应用程序时向 yaml 文件添加新属性的最佳方法
- c# - 无法将公共列表作为方法的返回类型返回