Struts2和Struts2 JQuery插件兼容性

Struts2 and Struts2 JQuery Plugin compatibility

本文关键字:Struts2 兼容性 插件 JQuery      更新时间:2023-09-26

我使用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。

My web.xml have:

<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显示

Uncaught TypeError: Cannot read property 'bind' of undefined

PD:如果我能完成这个问题,请告诉我,我会用更多的信息来完成的

使用

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

不需要使用

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

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