前台使用$.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>
相关文章推荐
- java中快速对其代码的快捷键
- Py4JJavaError: An error occurred while calling o18.sql. : java.lang.RuntimeException:
- org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document fro
- java实现正则表达式到NFA的转换
- Java泛型详解
- Java反射详解
- 关于java的log4j配置
- java中子类会继承父类的构造方法吗?
- 二、JAVA SE基础视频02
- Java开发中的23种设计模式详解
- java基础 设计模式1_创建型模式 简单总结
- Struts2的ONGL表达式
- java.util.concurrent.ThreadPoolExecutor
- java.util.concurrent.ThreadPoolExecutor
- eclipse打不开
- 一、JAVA基础视频01
- Java泛型详解
- JPA+Spring
- 【JAVA知识】HashTable和HashMap的区别,并简述Hashmap的实现原理
- 初学Java的HelloWorld以及常见问题