jquery回调没有被解雇

时间:2011-11-21 08:17:57

标签: jquery ajax json jsp struts2

我一直在尝试使用struts和json在我的jsp中显示json数据。我使用jquery post将数据发送到action类,一旦成功,它应该触发一个回调函数是jquery post.But回调没有被触发。

我无法在此找到缺失的链接。

这是我的代码..

我的struts xml ..

   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">

   <struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources"></constant>

<package name="default" extends="json-default">

  <action name="some" class="action.Testing">
    <result type="json">
     <param name="root">displaying</param>
     <param name="noCache">true</param>
    </result>

  </action>

 </package>

 </struts>

我的jsp页面如下..

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
  <%@ taglib prefix="s" uri="/struts-tags" %>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  http://www.w3.org/TR/html4/loose.dtd">
 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>


<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>
 <script type="text/javascript">

  function somecallback(displaying){


     var result = displaying.split(",");

  var dataintext = result[0];

    $('#sub').val(dataintext);

   }


  function test(){

    var input = { "text" : "testing entry data",
               "displaying" : "hello"
            };  

       $.post('some.action',input,somecallback,"json");
  }

    $(function(){
    $('#field').click(function(){
     test();
     return false;
     });

 </script>
 </head>
 <body>
 <s:form method="post">
 hello..
<s:submit id="field" value="click me too!!"></s:submit>
<s:textarea id="sub" name="tes" value="%{text}"></s:textarea>
<s:textarea id="second" name="tester"></s:textarea>
<div id="flag" style="height:100px;width:20px;">sfdsf</div>
<input type="text" id="hi" name="help" value="clicked here!!" />"
</s:form>
</body>
</html>

任何建议和帮助都非常感谢..

谢谢你, hemanth。

3 个答案:

答案 0 :(得分:1)

尝试更改您链接脚本的顺序,jquery应该在您喜欢任何使用jquery的文件之前

<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>

另外,请勿使用onclick:

$('#field').click(function(){
   test();
});

答案 1 :(得分:1)

应该先调用jQuery库。看起来乍一看脚本是乱序的。尝试重新安排脚本并首先放置jquery.js.

答案 2 :(得分:0)

终于解决了这个问题。这些是导致我解决问题的两个变化。

1)正如adam和charles上面提到的那样,jquery.js应该高于任何其他要加载的javascript。

2)我使用的jquery javascript是1.2.3版本,它不支持我想要实现的,所以我下载了最新的,即。版本1.6.2,这实际上支持我想要的。

谢谢。

相关问题