您的位置:首页 > 编程语言 > Java开发

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

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






//首先,贴上前端的代码:
<%@ 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的配置,事实上这一步才是关键,前面的大家都会的

<?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.3.dtd">

<struts>
<!--开发阶段用到的常量设置 ,开发阶段结束后必须注释 -->
<!-- 重新加载struts.xml文件 -->
<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">person</param>
</result>
</action>
<!-- 可以在浏览器输入http://localhost:8888/JsonStruts/user/SendJsonAction.action,若有输出也说明发送数据成功 -->
</package>
</struts>


再贴上最无聊的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>

<!--配置Struts2  -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Struts2结束 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: