利用ajax调用action中的三种方法(转)

时间:2024-03-10 17:02:06
1、struts中要继承struts_json
2、struts.xml的配置文件中要设置<result type="json"/>
3、dataType:"json",   //接受数据格式   

 

4、$.ajax()来调用action  

 

Java代码
  1. <script>  
  2.    $(document).ready(function(){  
  3.          $.ajax({  
  4.                            url :"newscenter/message/ten_news_list.action",  //后台处理程序  
  5.                            type:"post",    //数据发送方式  
  6.                            async:false,  
  7.                            dataType:"json",   //接受数据格式             
  8.                            error: function(){  
  9.                            alert("服务器没有返回数据,可能服务器忙,请重试");  
  10.                           },  
  11.                             
  12.                            
  13.                            success: function(json){  
  14.                               var listArray = eval(json).titlelist;  
  15.                                 
  16.                                
  17.                               for(var i=0;i<listArray.length;i++)  
  18.                               {  
  19.                                  $(".index_leftlist ul").append("<li>"+listArray[i]+"</li>");   
  20.                                                                       
  21.                               }  
  22.                                 
  23.                             }   
  24.             });                     
  25.     });  
  26.       
  27. </script>  
 <script>    $(document).ready(function(){     $.ajax({   url :"newscenter/message/ten_news_list.action",  //后台处理程序   type:"post",    //数据发送方式   async:false,   dataType:"json",   //接受数据格式              error: function(){   alert("服务器没有返回数据,可能服务器忙,请重试");  },      success: function(json){  var listArray = eval(json).titlelist;     for(var i=0;i<listArray.length;i++)  {     $(".index_leftlist ul").append("<li>"+listArray[i]+"</li>");       }  }              });                   });</script>


2、jquery使用$.post()来调用action

2.1、struts中要继承struts_json
2.2、struts.xml的配置文件中要设置<result type="json"/>

 

2.3、$.post(url,data,callback,"json"),跟上面的一样。如果不写"json",在解析json的时候就会出错;[/size]

引用
$(document).ready(function(){

 

var userInput=$("#companyName");
userInput.blur(function(event) {

            //处理文本框中的键盘事件
            //如果输入字母,将文本框中最新信息发送给服务器
            var myEvent = event || window.event;
            var keyCode = myEvent.keyCode;//获得键值
var wordText =$("#companyName").val();
           
        
                                
$.post("account_help/isUserNameExists.action?companyName="+wordText, null, function(json) {

var isCompanyExists = json.companyExists;
if(!isCompanyExists)
{
alert(\'公司名不存在\');
}

},"json");

            });

 

 


[size=large]3、使用jquery接受返回的xml数据。

 

Java代码
  1.         var wordInput=$("#CheckImgCode");  
  2.         wordInput.keyup(function(event) {  
  3.           
  4.             //处理文本框中的键盘事件  
  5.             //如果输入字母,将文本框中最新信息发送给服务器  
  6.             var myEvent = event || window.event;  
  7.             var keyCode = myEvent.keyCode;//获得键值              
  8.             var wordText =$("#CheckImgCode").val();  
  9.               
  10.                           
  11.                             $.post("account_help/check.jsp?name="+wordText+"&Event=Search", {word:wordText}, function(data) {  
  12.                                  var jqueryObj = $(data);//将dom对象data转换成jQuery的对象  
  13.                                  var wordNodes = jqueryObj.find("message");//找到所有word节点  
  14.                                  var wordNode = wordNodes.text();//获取单词内容  
  15.                                    
  16.                                 if(wordNode=="true")  
  17.                                 {  
  18.                                     document.getElementById("imgName").src="images/true.gif";  
  19.                                     //让注册按钮失效     
  20.                                                                         //让注册按钮失效     
  21.                                     document.getElementById("next").disabled=false;                                                                   
  22.                                 }  
  23.                                 else  
  24.                                 {  
  25.                                     document.getElementById("imgName").src="images/false.gif";  
  26.                                                                         //让注册按钮失效     
  27.                                     document.getElementById("next").disabled=true;                                            
  28.                                 }  
  29.                             },"xml");  
  30.   
  31.             });  
  32.   
  33. check.jsp中的代码:  
  34. <%@ page contentType="text/xml; charset=gb2312" language="java" %>  
  35. <%  
  36.   
  37.   
  38.    
  39. String rand = (String)session.getAttribute("rand");  
  40. String input = request.getParameter("name");  
  41.   
  42. //是否为执行CheckName方法  
  43. //返回XML数据给客户端。=========================================================================  
  44. //  
  45. out.print("<messages>");  
  46.   
  47.             if (rand.equals(input))  
  48.             {  
  49.                 //当数据库中已存在此用户时输出为false,让其显示相应图标  
  50.                 out.print("<message>");  
  51.                 out.print("true");  
  52.                 out.print("</message>");  
  53.             }  
  54.             else  
  55.             {  
  56.                 out.print("<message>");  
  57.                 out.print( "false" );  
  58.                 out.print("</message>");  
  59.             }  
  60.   
  61. out.print("</messages>");  
  62.   
  63.   
  64. %>  
var wordInput=$("#CheckImgCode");wordInput.keyup(function(event) {            //处理文本框中的键盘事件            //如果输入字母,将文本框中最新信息发送给服务器            var myEvent = event || window.event;            var keyCode = myEvent.keyCode;//获得键值                        var wordText =$("#CheckImgCode").val();                                  $.post("account_help/check.jsp?name="+wordText+"&Event=Search", {word:wordText}, function(data) { var jqueryObj = $(data);//将dom对象data转换成jQuery的对象 var wordNodes = jqueryObj.find("message");//找到所有word节点  var wordNode = wordNodes.text();//获取单词内容  if(wordNode=="true"){document.getElementById("imgName").src="images/true.gif";//让注册按钮失效//让注册按钮失效document.getElementById("next").disabled=false;}else{document.getElementById("imgName").src="images/false.gif";//让注册按钮失效document.getElementById("next").disabled=true;} },"xml");            });check.jsp中的代码:<%@ page contentType="text/xml; charset=gb2312" language="java" %><% String rand = (String)session.getAttribute("rand");String input = request.getParameter("name");//是否为执行CheckName方法//返回XML数据给客户端。=========================================================================//out.print("<messages>");            if (rand.equals(input))            {                //当数据库中已存在此用户时输出为false,让其显示相应图标out.print("<message>");                out.print("true");                out.print("</message>");            }            else            {out.print("<message>");                out.print( "false" );                out.print("</message>");            }out.print("</messages>");%>

1、contentType="text/xml;一定要声明为xml否则在ie浏览器中就认为是html在fireforx兼容text/html和text/xml两种格式。