struts1+ajax+json/xml

Struts1+JQuery+JSON/XML的例子

1.Struts+JQuery+XML

       struts-config.xml如下:

              

[xhtml] view plain copy
  1. <action  
  2.      attribute="testForm"  
  3.      input="/indexxml.jsp"  
  4.      name="testForm"  
  5.      path="/testxml"  
  6.      scope="request"  
  7.      type="action.TestXmlAction"  
  8.      validate="false" />  
             

      TestxmlAction.java如下:

             

  1. /* 
  2.  * Generated by MyEclipse Struts 
  3.  * Template path: templates/java/JavaClass.vtl 
  4.  */  
  5. package action;  
  6.   
  7. import java.io.IOException;  
  8. import java.io.PrintWriter;  
  9. import java.util.ArrayList;  
  10. import java.util.List;  
  11.   
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14.   
  15. import org.apache.struts.action.Action;  
  16. import org.apache.struts.action.ActionForm;  
  17. import org.apache.struts.action.ActionForward;  
  18. import org.apache.struts.action.ActionMapping;  
  19.   
  20. import form.TestForm;  
  21.   
  22. /**  
  23.  * MyEclipse Struts 
  24.  * Creation date: 03-05-2010 
  25.  *  
  26.  * XDoclet definition: 
  27.  * @struts.action path="/test" name="testForm" input="index.jsp" scope="request" 
  28.  */  
  29. public class TestXmlAction extends Action {  
  30.     /* 
  31.      * Generated Methods 
  32.      */  
  33.   
  34.     /**  
  35.      * Method execute 
  36.      * @param mapping 
  37.      * @param form 
  38.      * @param request 
  39.      * @param response 
  40.      * @return ActionForward 
  41.      * @throws IOException  
  42.      */  
  43.     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  44.         HttpServletRequest request, HttpServletResponse response) throws IOException {  
  45.         TestForm testForm = (TestForm) form;// TODO Auto-generated method stub  
  46.         response.setContentType("text/xml; charset=utf-8");//传输xml时要用html  
  47.         response.setCharacterEncoding("utf-8");  
  48.         System.out.println(testForm.getTestvalue());  
  49.         PrintWriter pw=response.getWriter();  
  50.         //1.传递单个参数,注意应将text/xml改为text/html  
  51.         /*int i=9; 
  52.         pw.print(i); 
  53.         pw.flush();*/  
  54.         //2.生成xml文件返回给html页面,此时list里面为单个String  
  55.        /* StringBuilder xml = new StringBuilder(); 
  56.         List<String> list=new ArrayList<String>(); 
  57.         list.add("aaa"); 
  58.         list.add("bbb"); 
  59.         list.add("ccc"); 
  60.         xml.append("<items>"); 
  61.         for (Object o : list) { 
  62.             xml.append("<item>").append(o).append("</item>"); 
  63.         } 
  64.         xml.append("</items>"); 
  65.         System.out.println(xml); 
  66.         pw.print(xml.toString()); 
  67.         pw.flush();*/  
  68.         //3.生成xml文件返回给html页面,此时list里面为对象类型  
  69.         /*response.setContentType("text/xml;charset=utf-8"); 
  70.           StringBuilder xml = new StringBuilder(); 
  71.         List<User> list=new ArrayList<User>(); 
  72.         User user1=new User(); 
  73.         User user2=new User(); 
  74.         User user3=new User(); 
  75.         user1.setUsername("username1"); 
  76.         user1.setPassword(1); 
  77.         user2.setUsername("username2"); 
  78.         user2.setPassword(2); 
  79.         user3.setUsername("username3"); 
  80.         user3.setPassword(3); 
  81.          
  82.         list.add(user1); 
  83.         list.add(user2); 
  84.         list.add(user3); 
  85.         xml.append("<items>"); 
  86.         for (int i=0;i<list.size();i++) { 
  87.             xml.append("<itemslist>"); 
  88.             xml.append("<username>").append(list.get(i).getUsername()).append("</username>"); 
  89.             xml.append("<password>").append(list.get(i).getPassword()).append("</password>"); 
  90.             xml.append("</itemslist>"); 
  91.         } 
  92.         xml.append("</items>"); 
  93.         System.out.println(xml); 
  94.         pw.print(xml.toString());*/  
  95.         return null;  
  96.     }  
  97.           
  98. }  

       辅助类User:

             

  1. package action;  
  2.   
  3. public class User {  
  4.     private String username;  
  5.     private int password;  
  6.     public String getUsername() {  
  7.         return username;  
  8.     }  
  9.     public void setUsername(String username) {  
  10.         this.username = username;  
  11.     }  
  12.     public int getPassword() {  
  13.         return password;  
  14.     }  
  15.     public void setPassword(int password) {  
  16.         this.password = password;  
  17.     }  
  18. }  

             

       indexxml.jsp如下:

             

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     
  11.     <base href="<%=basePath%>">  
  12.     <title>MyStrutsJQueryJson</title>  
  13.     <meta http-equiv="pragma" content="no-cache">  
  14.     <meta http-equiv="cache-control" content="no-cache">  
  15.     <meta http-equiv="expires" content="0">      
  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  17.     <meta http-equiv="description" content="This is my page">  
  18.     <!--  
  19.     <link rel="stylesheet" type="text/css" href="styles.css">  
  20.     -->  
  21.     <script type="text/javascript" src="/S1.2SHJQuery/js/jquery-1.4.2.js"></script>  
  22. <script type="text/javascript">  
  23.     //1.jquery单独传递单个参数  
  24.     /*$(function(){ 
  25.         alert("start"); 
  26.         $.post("testxml.do",{testvalue:$('#test').val()},function(data){ 
  27.             alert(data); 
  28.         }) 
  29.      })*/  
  30.      //2.jquery单独传递含单个参数的list,采用的是xml形式  
  31.      $(function(){  
  32.         $.post("testxml.do",{testvalue:$('#test').val()},function(data){  
  33.             var items = data.getElementsByTagName("item");  
  34.             alert(items.length);  
  35.             for(var i=0;i<items.length;i++){  
  36.                 alert(items[i].childNodes[0].nodeValue);  
  37.             }  
  38.         })  
  39.      })  
  40.      //3.jquery单独传递含对象类型的list,,采用的是xml形式  
  41.      /*$(function(){ 
  42.         $.post("testxml.do",{testvalue:$('#test').val()},function(data){ 
  43.             var items = data.getElementsByTagName("itemslist"); 
  44.             //循环输出username和password          
  45.             for(var i=0;i<items.length;i++){ 
  46.                     var childs=items[i].childNodes; 
  47.                     for(var j=0;j<childs.length;j++){ 
  48.                      alert(childs[j].firstChild.nodeValue); 
  49.                } 
  50.             } 
  51.         }) 
  52.      }) 
  53.      */  
  54.        
  55. </script>  
  56.   </head>  
  57.   <body>&nbsp;   
  58.   <form action="/testxml.do">  
  59.   <input type="button" value="JQuery"  id="jquerytest"><br>  
  60.   <input type="text" value="JQuery test" name="test" id="test">  
  61.    <font id="userlogin">登陆</font><span id="loading"></span>     
  62.     <p id="result"></p>     
  63.   </form>  
  64.   </body>  
  65. </html>  

 

 2.Struts+JQuery+JSON

      TestAction如下:

             

  1. /* 
  2.  * Generated by MyEclipse Struts 
  3.  * Template path: templates/java/JavaClass.vtl 
  4.  */  
  5. package action;  
  6.   
  7. import java.io.IOException;  
  8. import java.io.PrintWriter;  
  9. import java.io.UnsupportedEncodingException;  
  10. import java.util.ArrayList;  
  11. import java.util.List;  
  12.   
  13. import javax.servlet.http.HttpServletRequest;  
  14. import javax.servlet.http.HttpServletResponse;  
  15.   
  16. import net.sf.json.JSONArray;  
  17.   
  18. import org.apache.struts.action.Action;  
  19. import org.apache.struts.action.ActionForm;  
  20. import org.apache.struts.action.ActionForward;  
  21. import org.apache.struts.action.ActionMapping;  
  22.   
  23. import form.TestForm;  
  24.   
  25. /**  
  26.  * MyEclipse Struts 
  27.  * Creation date: 03-05-2010 
  28.  *  
  29.  * XDoclet definition: 
  30.  * @struts.action path="/test" name="testForm" input="index.jsp" scope="request" 
  31.  */  
  32. public class TestAction extends Action {  
  33.     /* 
  34.      * Generated Methods 
  35.      */  
  36.   
  37.     /**  
  38.      * Method execute 
  39.      * @param mapping 
  40.      * @param form 
  41.      * @param request 
  42.      * @param response 
  43.      * @return ActionForward 
  44.      * @throws UnsupportedEncodingException  
  45.      */  
  46.     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  47.         HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {  
  48.         TestForm testForm = (TestForm) form;// TODO Auto-generated method stub  
  49.         response.setContentType("text/json; charset=utf-8"); //注意设置为json,如果为xml,则设为xml  
  50. /*      response.setContentType("text/xml; charset=utf-8");传输xml时要用xml 
  51.  *      response.setCharacterEncoding("utf-8"); 
  52.  * */  
  53.         System.out.println(testForm.getTestvalue());  
  54.         //1.struts1.2+JQuery+Json传递list参数,此时list的类型为String  
  55.         /*List<String> list=new ArrayList<String>(); 
  56.         list.add("string1"); 
  57.         list.add("string2"); 
  58.         list.add("string3"); 
  59.         JSONArray json=JSONArray.fromObject(list); 
  60.         try { 
  61.             PrintWriter out=response.getWriter(); 
  62.             System.out.println(json); 
  63.             out.print(json); 
  64.              
  65.             out.flush(); 
  66.         } catch (IOException e) { 
  67.             // TODO Auto-generated catch block 
  68.             e.printStackTrace(); 
  69.         }*/  
  70.         //2.struts1.2+JQuery+Json传递Map参数  
  71.         /*Map<String,String> map=new HashMap<String,String>(); 
  72.         map.put("name1","string1"); 
  73.         map.put("name2","string2"); 
  74.         map.put("name3","string3"); 
  75.         JSONArray json=JSONArray.fromObject(map); 
  76.         try { 
  77.             PrintWriter out=response.getWriter(); 
  78.             System.out.println(json); 
  79.             out.print(json); 
  80.             out.flush(); 
  81.         } catch (IOException e) { 
  82.             // TODO Auto-generated catch block 
  83.             e.printStackTrace(); 
  84.         }*/  
  85.         //3.传递单个String值  
  86.         /*String singlepara="{/"name/":'中国'}";//要注意格式 
  87.         JSONObject json=JSONObject.fromObject(test); 
  88.         try { 
  89.             PrintWriter out=response.getWriter(); 
  90.             System.out.println(json); 
  91.             out.print(json); 
  92.             out.flush(); 
  93.         } catch (IOException e) { 
  94.             // TODO Auto-generated catch block 
  95.             e.printStackTrace(); 
  96.         }*/  
  97.         //4.struts1.2+JQuery+Json传递User参数  
  98.           
  99.         /*User user1=new User(); 
  100.         user1.setPassword(1); 
  101.         String username = "你好"; 
  102.         user1.setUsername(username); 
  103.         //user1.setUsername(new String(username.getBytes("utf-8"), "iso8859-1")); 
  104.         JSONObject json=JSONObject.fromObject(user1); 
  105.         try { 
  106.             PrintWriter out=response.getWriter(); 
  107.             System.out.println(json); 
  108.             out.print(json); 
  109.              
  110.             out.flush(); 
  111.         } catch (IOException e) { 
  112.             // TODO Auto-generated catch block 
  113.             e.printStackTrace(); 
  114.         }*/  
  115.         //5.struts1.2+JQuery+Json传递list参数,此时list的类型为String  
  116.         List<User> list=new ArrayList<User>();  
  117.           
  118.         User user1=new User();  
  119.         user1.setPassword(1);  
  120.         user1.setUsername("u1");  
  121.         User user2=new User();  
  122.         user2.setPassword(2);  
  123.         user2.setUsername("u2");  
  124.         User user3=new User();  
  125.         user3.setPassword(3);  
  126.         user3.setUsername("u3");  
  127.           
  128.         list.add(user1);  
  129.         list.add(user2);  
  130.         list.add(user3);  
  131.         JSONArray json=JSONArray.fromObject(list);  
  132.         try {  
  133.             PrintWriter out=response.getWriter();  
  134.             System.out.println(json);  
  135.             out.print(json);  
  136.               
  137.             out.flush();  
  138.         } catch (IOException e) {  
  139.             // TODO Auto-generated catch block  
  140.             e.printStackTrace();  
  141.         }  
  142.         return null;  
  143.     }  
  144.           
  145. }  

 

      struts-config.xml如下:

             

[c-sharp] view plain copy
  1. <action  
  2.       attribute="testForm"  
  3.       input="/index.jsp"  
  4.       name="testForm"  
  5.       path="/test"  
  6.       scope="request"  
  7.       type="action.TestAction"  
  8.       validate="false" />  

       index.jsp如下:

             

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.     <title>struts+jquery+json</title>  
  13.     <meta http-equiv="pragma" content="no-cache">  
  14.     <meta http-equiv="cache-control" content="no-cache">  
  15.     <meta http-equiv="expires" content="0">      
  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  17.     <meta http-equiv="description" content="This is my page">  
  18.     <!--  
  19.     <link rel="stylesheet" type="text/css" href="styles.css">  
  20.     -->  
  21.     <script type="text/javascript" src="/MyStrutsJQueryJson/js/jquery-1.4.2.js"></script>  
  22.     <script type="text/javascript">  
  23.     /*1.struts1.2+JQuery+Json传递list参数,此时list的类型为String 
  24.         $(function(){ 
  25.             $("#submitbutton").click(function(){ 
  26.             var params={testvalue:$('#test').val()}; 
  27.                 $.ajax({ 
  28.                         url:"test.do", 
  29.                         data:params, 
  30.                         type:'post', 
  31.                         dataType:'json', 
  32.                         success:function(data){ 
  33.                         //data值:["string1","string2","string3"] 
  34.                                 alert("成功"); 
  35.                                 alert(data.length); 
  36.                                 for(var j=0;j<data.length;j++) 
  37.                                     { 
  38.                                         alert(data[j]); 
  39.                                     } 
  40.                             }, 
  41.                         error:  function(){ 
  42.                                 alert("失败"); 
  43.                             }                    
  44.                 }) 
  45.             }) 
  46.         })*/  
  47.     //2.struts1.2+JQuery+Json传递Map参数  
  48.         /*$(function(){ 
  49.             $("#submitbutton").click(function(){ 
  50.             alert("start"); 
  51.             var params={testvalue:$('#test').val()}; 
  52.                 $.ajax({ 
  53.                         url:"test.do", 
  54.                         data:params, 
  55.                         type:'post', 
  56.                         dataType:'json', 
  57.                         success:function(data){ 
  58.                                 //alert(data.name1);//缺点是须知道属性名,在JSONArray下 
  59.                                 //迭代循环输出 
  60.                                 //data值为:[{"name3":"string3","name1":"string1","name2":"string2"}] 
  61.                                     $.each(data[0],function(key,value){ 
  62.                                         alert(key+"  "+value); 
  63.                                     }) 
  64.                             }, 
  65.                         error:  function(){ 
  66.                                 alert("失败"); 
  67.                             }                    
  68.                 }) 
  69.             }) 
  70.         })*/  
  71.     //3.struts1.2+JQuery+Json传递String参数  
  72.     /* 
  73.     $(function(){ 
  74.         $("#submitbutton").click(function(){ 
  75.             var params={testvalue:$('#test').val()}; 
  76.                 alert("start"); 
  77.                 $.ajax({ 
  78.                         url:"test.do", 
  79.                         data:params, 
  80.                         type:'post', 
  81.                         dataType:'json', 
  82.                         success:function(data){ 
  83.                                 alert("成功"); 
  84.                                 alert(data.name); 
  85.                             }, 
  86.                         error:  function(){ 
  87.                                 alert("失败"); 
  88.                             }                    
  89.                 }) 
  90.             }) 
  91.     })*/  
  92.     //4.struts1.2+JQuery+Json传递User参数  
  93.         /*$(function(){ 
  94.             $("#submitbutton").click(function(){ 
  95.             var params={testvalue:$('#test').val()}; 
  96.                 $.ajax({ 
  97.                         url:"test.do", 
  98.                         data:params, 
  99.                         type:'post', 
  100.                         dataType:'json', 
  101.                         success:function(data){ 
  102.                         //data值为:{"password":1,"username":"你好"} 
  103.                                 alert("成功"); 
  104.                                 alert(data.username); 
  105.                                 alert(data.password); 
  106.                             }, 
  107.                         error:  function(){ 
  108.                                 alert("失败"); 
  109.                             }                    
  110.                 }) 
  111.             }) 
  112.         })*/  
  113.     //5.struts1.2+JQuery+Json传递list参数,此时list的类型为User  
  114.         $(function(){  
  115.             $("#submitbutton").click(function(){  
  116.             var params={testvalue:$('#test').val()};  
  117.                 $.ajax({  
  118.                         url:"test.do",  
  119.                         data:params,  
  120.                         type:'post',  
  121.                         dataType:'json',  
  122.                         success:function(data){  
  123.                                 alert("成功");  
  124.                                 //data值:[{"password":1,"username":"u1"},{"password":2,"username":"u2"},{"password":3,"username":"u3"}]  
  125.                                 /*for(var j=0;j<data.length;j++) 
  126.                                     { 
  127.                                         alert(data[j].username); 
  128.                                         alert(data[j].password); 
  129.                                     }*/  
  130.                                     $.each(data,function(i){  
  131.                                         $.each(data[i],function(key,value){  
  132.                                             alert(key+" "+value);  
  133.                                         })  
  134.                                     })  
  135.                             },  
  136.                         error:  function(){  
  137.                                 alert("失败");  
  138.                             }                     
  139.                 })  
  140.             })  
  141.         })  
  142.     </script>  
  143.   </head>  
  144.     
  145.   <body>  
  146.     测试输入框:<input type="text" id="test" name="hello"><br>  
  147.     <input type="button" name="submitbutton"  id="submitbutton" value="提交">  
  148.   </body>  
  149. </html>  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值