Struts2和Struts2 JQuery插件的兼容性

时间:2015-09-30 07:03:52

标签: javascript java jquery ajax struts2

我正在使用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:如果我可以完成这个问题,请告诉我,我会用更多信息来做这件事

1 个答案:

答案 0 :(得分:2)

使用此

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

无需使用

<script src="js/jquery.js"></script>

由于<sj:head/>生成了运行jquery所需的所有导入。