zoukankan      html  css  js  c++  java
  • Struts2+jQuery+Json零配置实现ajax

    (一)Jsp页面代码

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
        -->
        <script type="text/javascript" src="js/jquery-1.6.1.js" mce_src="js/jquery-1.6.1.js"></script>
        
        <script type="text/javascript">
            $(function(){
            
                $("#str").click(function(){
                    $.ajax({
                        type: "post",
                        url: "jsonTest/str.action",
                        dataType: "json",
                        data: {"name":"pyz","age":"30"},
                        beforeSend: function(XMLHttpRequest){
                            //ShowLoading();
                            $("#str").val("正在处理中...");
                        },
                        success: function(data){ 
                            alert("字符串:" + data);
                        },
                        complete: function(XMLHttpRequest, textStatus){
                            //HideLoading();
                            $("#str").val("已处理完成");
                        },
                        error: function(){
                            //请求出错处理
                            alert("error");
                        }
                    });
                });
            
                $("#keyValue").click(function(){
                    $.ajax({
                        type: "post",
                        url: "jsonTest/keyValue.action",
                        dataType: "json",
                        data: {"name":"pyz","age":"30"},
                        beforeSend: function(XMLHttpRequest){
                            //ShowLoading();
                            $("#keyValue").val("正在处理中...");
                        },
                        success: function(data){
                            var jo = eval("("+data+")"); 
                            alert("姓名:" + jo.name + "  年龄:"+ jo.age);
                        },
                        complete: function(XMLHttpRequest, textStatus){
                            //HideLoading();
                            $("#keyValue").val("已处理完成");
                        },
                        error: function(){
                            //请求出错处理
                            alert("error");
                        }
                    });
                });
                
                $("#objList").click(function(){
                    $.ajax({
                        type: "post",
                        url: "jsonTest/objList.action",
                        dataType: "json",
                        data: {"name":"pyz","age":"30"},
                        beforeSend: function(XMLHttpRequest){
                            //ShowLoading();
                            $("#objList").val("正在处理中...");
                        },
                        success: function(data){
                            var jo = eval("("+data+")"); 
                            var buf="" ;  
                             //遍历json返回数据  
                            $(jo).each(function(i,item){  
                                buf += "姓名:";  
                                buf += item.name;  
                                buf += "  年龄:";  
                                buf += item.age;  
                                buf += "/r/n";  
                            });
                            alert(buf);
                        },
                        complete: function(XMLHttpRequest, textStatus){
                            //HideLoading();
                            $("#objList").val("已处理完成");
                        },
                        error: function(){
                            //请求出错处理
                            alert("error");
                        }
                    });
                });
                
            });
        
    </script>
      </head>
      
      <body>
        <input type="button" id="keyValue" value="提交/接收数据(键值对)" /> <br>
        <input type="button" id="str" value="接收字符串" /> <br>
        <input type="button" id="objList" value="接收对象列表" /> <br>
      </body>
    </html>

    (二)Action代码

    package com.pyz.action;
    import java.util.HashMap;
    import java.util.Map;
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import net.sf.json.JSONSerializer;
    import org.apache.struts2.ServletActionContext;
    import org.apache.struts2.convention.annotation.Action;
    import org.apache.struts2.convention.annotation.ParentPackage;
    import org.apache.struts2.convention.annotation.Result;
    import com.opensymphony.xwork2.ActionSupport;
    @ParentPackage("json-default")
    public class JsonTestAction extends ActionSupport {
    	private static final long serialVersionUID = 1L;
    	
    	//返回json格式的数据  
        private String result;
    	
    	@Action(
    		value="/jsonTest/str",
    		results={
    			@Result(name="success", type="json", params={"root","result"})
    		}
    	)
    	public String str(){
    		String name = ServletActionContext.getRequest().getParameter("name");
    		String age = ServletActionContext.getRequest().getParameter("age");
    		
    		this.result = "aaa";
    		
    		return SUCCESS;
    	}
    	
    	@Action(
    		value="/jsonTest/keyValue",
    		results={
    			@Result(name="success", type="json", params={"root","result"})
    		}
    	)
    	public String keyValue(){
    		String name = ServletActionContext.getRequest().getParameter("name");
    		String age = ServletActionContext.getRequest().getParameter("age");
    		
    //		//方法一,直接创建JSON对象
    //		JSONObject jo = new JSONObject();
    //		jo.element("name", name);
    //		jo.element("age", age);
    		
    //		//方法二,JAVABEAN转JSON对象
    //		User user = new User();
    //		user.setName("pyz");
    //		user.setAge(19);
    //		JSONObject jo = (JSONObject)JSONObject.fromObject(user);
    //		//JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句
    		
    		//方法三,MAP转JSON对象
    		Map<String, Object> map = new HashMap<String, Object>();
    		map.put("name", "pyz");
    		map.put("age", 19);
    		JSONObject jo = (JSONObject)JSONObject.fromObject(map);
    		//JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句
    		
    		this.result = jo.toString();
    		
    		return SUCCESS;
    	}
    	@Action(
    		value="/jsonTest/objList",
    		results={
    			@Result(name="success", type="json", params={"root","result"})
    		}
    	)
    	public String objList(){
    		String name = ServletActionContext.getRequest().getParameter("name");
    		String age = ServletActionContext.getRequest().getParameter("age");
    		
    		//方法一,直接创建JSON对象
    		JSONObject jo = new JSONObject();
    		jo.element("name", name);
    		jo.element("age", age);
    		JSONObject jo1 = new JSONObject();
    		jo1.element("name", "ty");
    		jo1.element("age", "29");
    		
    		//同理,可以将JAVABEAN、MAP对象转换成JSON对象,再添加到JSONArray中
    		
    		JSONArray ja = new JSONArray();
    		ja.add(jo);
    		ja.add(jo1);
    		this.result = ja.toString();
    		
    		return SUCCESS;
    	}
    	
    	public String getResult() {
    		return result;
    	}
    	public void setResult(String result) {
    		this.result = result;
    	}
    	
    	public class User{
    		private String name;
    		private int age;
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    		public int getAge() {
    			return age;
    		}
    		public void setAge(int age) {
    			this.age = age;
    		}
    	}
    }
    
  • 相关阅读:
    Angular JS 学习之 Scope作用域
    PHP变量
    AngularJS学习之模型
    Angular JS学习之指令
    Angular JS学习之表达式
    Angular JS 学习之简介
    HTML DOM学习之三
    HTML DOM学习之二
    HTML DOM学习之一
    《集体智慧编程》第一章
  • 原文地址:https://www.cnblogs.com/shijiewutonghua/p/3578816.html
Copyright © 2011-2022 走看看