客户端传递json与服务端异步交互问题(struts2+jquery)
2013-05-05 12:35
369 查看
ajax异步传递json
最快在做项目时,遇到了这样的问题,浏览器通过ajax方式异步传递JSON交互问题,会出现各种问题。经过几天的搜索,终于得到解决~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" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'ajaxTest.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"/> <script type="text/javascript" src="scripts/jquery-1.9.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".submit").click(function(){ $.ajax({ url:"getJsonAction2", type:"POST", dataType:"json", contentType:"application/json;charset=utf-8", success:function(returnData,status) { person1= returnData[0]; person2= returnData[1]; alert(person1.username); alert(person2.username); } }); }); }); </script> </head> <body> <input type="submit" value="getJson" class="submit" > </body> </html>
Action代码:
import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.google.gson.Gson; import com.opensymphony.xwork2.ActionSupport; public class GetAjaxAction extends ActionSupport { @Override public String execute() throws Exception { Person person1 = new Person(); person1.setUsername("zhangsan"); person1.setPassword("123456"); person1.setAge(16); person1.setAddress("beijing"); Person person2 = new Person(); person2.setUsername("lisi"); person2.setPassword("123456"); person2.setAddress("shanghai"); person2.setAge(20); ArrayList<Person> list= new ArrayList<Person>(); list.add(person1); list.add(person2); Gson gson= new Gson(); String result = gson.toJson(list); System.out.println(result); HttpServletResponse response =ServletActionContext.getResponse(); PrintWriter out= response.getWriter(); out.println(result); out.flush(); out.close(); return null; } }struts.xml配置:
<action name="getJsonAction2" class="com.fileupload.GetAjaxAction"></action>
结果页面:
返回的JSON的对象数组,这样就可以解决很多问题了~当然也可以从jsp传送数据到服务端,比$.ajax更好用的方法还有$.post()和$.load(),但都基于ajax()方法实现的,而且ajax()方法还有很多可选的参数,有兴趣的可以自己练习用下~
相关文章推荐
- 如何在服务端与客户端灵活交互?不得不考虑的问题!
- 关于使用Mina做客户端和服务端传递对象的问题
- Android客户端与服务端之间传递json数据
- Android 对Android客户端与服务端传递的Json数据进行加密、解密操作
- 客户端传递json格式数据,spring mvc服务端接受并进行参数校验
- ssh配置客户端和服务器的交互json传递数据
- 一个帖子解决服务器与客户端传递对象的问题,JSON解析两种方法
- 【Android 开发】: Android客户端与服务端之间使用JSON交互数据。
- 客户端与服务端的数据交互 PageMethods + JSON
- Android开发:客户端与服务器通过传递和接收json数据进行交互
- SilverLight企业应用框架设计【五】客户端调用服务端(使用JSON传递数据,自己实现RESTful Web服务)
- jQuery_review之使用$.getScript()以及$.getJSON来与服务端进行异步信息交互
- 关于AIDL客户端与服务端交互的包名问题-package
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- 关于客户端与服务器ajax使用json数据交互,出现中文乱码或因包含html标答而报错的问题(base64加密)
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- ext异步请求一个aspx/ashx/web service取得数据,服务端返回一个json.然后客户端接收并显示.
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
- 实践Android客户端与服务端之间使用JSON交互数据。
- C++的gsoap客户端与基于WCF的C#服务端Web Service交互的问题