首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts2 jQuery配置问题

Struts2 jQuery配置问题
EN

Stack Overflow用户
提问于 2013-01-07 11:32:50
回答 3查看 6.5K关注 0票数 3

在我的webapp中,我使用的是struts2-jquery插件。

代码语言:javascript
复制
Struts2 version - 2.3.7
struts.jquery.version - 3.5.0

对于在Struts中使用jQuery,我使用了以下配置-

在pom.xml中

代码语言:javascript
复制
        <dependency>
            <groupId>com.jgeppert.struts2.jquery</groupId>
            <artifactId>struts2-jquery-plugin</artifactId>
            <version>${struts.jquery.version}</version>
        </dependency>

在我的JSP中添加了以下标记:

代码语言:javascript
复制
 <sj:head  jqueryui="true"/>

并使用了这样一个autocompleter小部件:

代码语言:javascript
复制
<s:url var="supUrl" namespace="/ajax" action="suppliers"/>
 <sj:autocompleter
    id="supplierMap"
    name="echo"
     label="Handle a Map"
     href="%{supUrl}"
     list="supplierMap"/>

我得到以下JavaScript错误:

代码语言:javascript
复制
Cannot call method 'bind' of undefined
jQuery.struts2_jquery_ui.bind(jQuery('#supplierMap_widget'),options_supplierMap_widget);

当我在浏览器中查看页面源时,我会看到以下内容。这里,JavaScript包含的路径与它在struts2-jquery-plugin.jar中的打包方式不同。

代码语言:javascript
复制
<script type="text/javascript" src="/struts/js/base/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="/struts/js/base/jquery.ui.core.min.js?s2j=3.5.0"></script>
  <script type="text/javascript" src="/struts/js/plugins/jquery.subscribe.min.js"></script>

  <script type="text/javascript" src="/struts/js/struts2/jquery.struts2.min.js?s2j=3.5.0"></script>

<script type="text/javascript">
$(function() {
    jQuery.struts2_jquery.version="3.5.0";
    jQuery.scriptPath = "/struts/";
    jQuery.ajaxSettings.traditional = true;

    jQuery.ajaxSetup ({
        cache: false
    });

    jQuery.struts2_jquery.require("js/struts2/jquery.ui.struts2.min.js");

});
</script>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-08 12:06:16

如果您使用的是struts2jQuery插件,则必须在web.xml中对url模式/*进行如下过滤器映射。

代码语言:javascript
复制
<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>

休息应该很好:)

票数 1
EN

Stack Overflow用户

发布于 2013-02-05 06:49:17

尝试删除在struts.xml中可能添加的任何名称空间,相应地调整您的urls。看看能不能用。

票数 0
EN

Stack Overflow用户

发布于 2013-12-09 13:07:32

我猜你的问题与上述任何一个答案有关。

正如错误消息所述,您的问题是jQuery.struts2_jquery_ui是未定义的。

这是在代码警告时提供的:

代码语言:javascript
复制
 jQuery.struts2_jquery.require("js/struts2/jquery.ui.struts2.min.js");

此文件不在您的标签中。见.ui。???

你所拥有的是:

代码语言:javascript
复制
 "/struts/js/struts2/jquery.struts2.min.js?s2j=3.5.0"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14195045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档