前台使用$.ajax()发送json数据,服务器响应后返回json数据实例(struts2+json+action)

    最近在做ping++,用到了服务端接收前端的json并且响应后发回json格式数据到前端的功能。现在就把我写的例子贴在这里,供大家参考。

文章转载自第一代码原创文章http://www.diyidaima.com/article/detail/tifoixyb

前台使用$.ajax()发送json数据,服务器响应后返回json数据实例(struts2+json+action)_第1张图片

前台使用$.ajax()发送json数据,服务器响应后返回json数据实例(struts2+json+action)_第2张图片

//首先,贴上前端的代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<script type="text/javascript" src="jquery.js">script>
<script type="text/javascript">
    $("#btnSend").click(function() {       
        $.ajax({
            type : "POST",
            url : '<%=basePath%>user/SendJsonAction.action',
            contentType : "application/json; charset=utf-8",
            data : JSON.stringify(GetJsonData()),
            dataType : "json",
            success : function(message) {
                alert("从前端到后台再回来获取到的数据:"+message.id+" "+message.name+" "+message.age);              
            },
            error : function(message) {
                alert("提交数据失败!");
            }
        });
    });

    function GetJsonData() {
        var json = {
            "id" : "1",
            "name" : "zzc",
            "age" : "23"
        };
        return json;
    }

script>  

然后贴上后台action以及实体类代码:

//先上action的
package com.zzc.json.action;

import com.opensymphony.xwork2.ActionSupport;
import com.zzc.po.Person;
/**
 * 
 * @author zzc
 * 项目描述:本项目用于实现后台发送json数据到前台的功能,这是其中一种实现方式,高手勿喷。
 */
public class JsonStrutsAction extends ActionSupport{
    /**作为前端发送来的数据接收变量*/
    private String id;
    private String name;
    private String age;

    /**需要作为json格式发送的变量或说对象*/
    Person person=null;

    /**下面是对应的setter和getter方法*/

    public String getName() {
        return name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }

    /**切记person也需要setter和getter,不然客户端获取到的是null*/
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
    public String SendJson(){
        person=new Person();
        person.setAge("年龄:"+age);//这里你也可以在客户端以person.age表示,那样这里可以去掉了,下同
        person.setId("id:"+id);
        person.setName("姓名:"+name);     
        return SUCCESS;//事实上,这种方法的重点在于action配置部分,详见struts.xml

    }
}
//Person实体类
package com.zzc.po;
/**实体类*/
public class Person {
    private String id;
    private String name;
    private String age;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }


}

再来看看struts.xml的配置,事实上这一步才是关键,前面的大家都会的




<struts>
    
    
    <constant name="struts.configuration.xml.reload" value="true" />
    
    <constant name="strusts.devMode" value="true" />
    
    <constant name="strusts.serve.static.browserCache" value="false" />
    
    <constant name="struts.i18n.encoding" value="UTF-8">constant>


    <package name="pay" namespace="/user" extends="json-default,struts-default">

     
     <action name="SendJsonAction" class="com.zzc.json.action.JsonStrutsAction" method="SendJson">
            <interceptor-ref name="json"/>
            <result name="success" type="json">
                <param name="root">personparam>
            result>    
     action>
     
    package>  
struts> 

再贴上最无聊的web.xml


<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>display-name> 

    
    <filter>
        <filter-name>struts2filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>
    filter>
    <filter-mapping>
        <filter-name>struts2filter-name>
        <url-pattern>/*url-pattern>
   filter-mapping>
   
  <welcome-file-list>
    <welcome-file>index.jspwelcome-file>
  welcome-file-list>
web-app>

你可能感兴趣的:(SSH框架那些事,SSM框架那些事)