我正在使用Struts2,我想做一个ajax帖子将文件上传到服务器端。我已经安装了Struts2 JQuery插件,但我认为这是一个兼容性问题,因为当我加载页面时,chrome控制台显示了这个问题:
<script type="text/javascript">
$(function() {
jQuery.struts2_jquery.version="3.6.0"; Uncaught TypeError: Cannot set property 'version' of undefined
我尝试过其他版本的插件(3.3.0,3.7.0),但我遇到了同样的问题。我正在使用struts2-core-2.3.1.2。
我的web.xml有:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我的jsp的标题是:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!doctype html>
<html>
<head>
<title></title>
<script src="js/jquery.js"></script>
<script src="js/jquery-ui.js"></script>
<sj:head jqueryui="true"/>
<tiles:insertAttribute name="header" />
我的sj:提交上传文件:
<s:url id="servicesUrl" action="ajaxCall"></s:url>
<sj:submit name="button1" value="Submit" href="%{servicesUrl}" targets="myAjaxTarget" ></sj:submit>
<div id="myAjaxTarget">
</div>
在提交的这一部分,chrome显示
未捕获的TypeError:无法读取未定义的属性'bind'
PD:如果我可以完成这个问题,请告诉我,我会用更多信息来做这件事
答案 0 :(得分:2)
使用此
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
无需使用
<script src="js/jquery.js"></script>
由于<sj:head/>
生成了运行jquery
所需的所有导入。