【问题标题】:jQuery does not call struts2 action?jQuery 不调用struts2 动作?
【发布时间】:2016-03-09 19:59:57
【问题描述】:

我已按照自动完成 example 进行操作,但没有成功。

JSP 搜索页面:

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
       <script src="${pageContext.request.contextPath}/js/jquery-1.9.0.js"></script>
        <script src="${pageContext.request.contextPath}/js/jquery-ui-1.10.0.js"></script>
        <script src="${pageContext.request.contextPath}/js/jquery.bgiframe.min.js"></script>
        <script src="${pageContext.request.contextPath}/js/jquery.ajaxQueue.js"></script>
        <script src="${pageContext.request.contextPath}/js/thickbox-compressed.js"></script>
        <script src="${pageContext.request.contextPath}/js/jquery.autocomplete.js"></script>

        <link href="${pageContext.request.contextPath}/css/jquery.autocomplete.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <h1>Hello World!</h1>
        <s:textfield id="listCats" name="displayedCatId" key="label_choose_topic" size="80" cssClass="selectedCat" />
    </body>
</html>
<script type="text/javascript" >
        $().ready(function() {
            $("#listCats").autocomplete('/listCategory.action', {
              minChars: 1,
                max: 15,
              multiple: false,
              autoFill: true
            });
       });
</script>

在 struts.xml 中

<action name="listCategory" class="qaplus.action.question.LoadCategoryAction" method="loadCategory">
            <result name="success">/WEB-INF/jsp/list_category.jsp</result>
</action>

问题是jQuery函数没有调用listCateory动作。

我错过了什么吗?

编辑: java脚本控制台报告:

Uncaught TypeError: Cannot read property 'opera' of undefined jquery.autocomplete.js:83
$.Autocompleter jquery.autocomplete.js:83
(anonymous function) jquery.autocomplete.js:32
jQuery.extend.each jquery-1.9.0.js:631
jQuery.fn.jQuery.each jquery-1.9.0.js:253
$.fn.extend.autocomplete jquery.autocomplete.js:31
(anonymous function) sample.jsp:34
fire jquery-1.9.0.js:1017
self.fireWith jquery-1.9.0.js:1127
jQuery.extend.ready jquery-1.9.0.js:416
DOMContentLoaded

【问题讨论】:

  • 您在 firebug 控制台中是否遇到任何错误?
  • 正如您的提醒,我注意到控制台生成 images/loadingAnimation.gif 404(未找到)
  • 您能否显示包含 jquery.js 和 autocomplete.js 的顺序,因为似乎未加载自动完成插件,就图像 404 而言,这不是问题...
  • 你的意思是包含在jsp文件中的那些?他们不是已经在那里了吗?
  • 很糟糕,我还没有看到这个问题,显然你已经以正确的顺序包含了 js 文件,请确保自动完成插件不会与任何其他插件冲突

标签: jquery autocomplete struts2


【解决方案1】:

jQuery自动完成中的动作名称与struts.xml中定义的动作不匹配

请将自动完成('/listCateory.action') 改为自动完成('/listCategory.action')

希望能解决问题。

【讨论】:

  • 它们确实匹配,因为当我在 SO 上发布问题时,它只是输入错误。在代码中,它们是匹配的。顺便说一句,我已经用 javascript 控制台的错误更新了问题
【解决方案2】:

您的自动完成插件依赖于 jQuery.browser 对象,该对象自 jQuery 1.3 以来已被废弃,并已在 jQuery 1.9 中被删除。

因此,您要么必须更新自动完成插件,要么使用 jQuery 1.8。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多