【SSH (七) 】使用ajax + json 交互
来源:互联网 发布:文艺软件app排行榜 编辑:程序博客网 时间:2024/06/06 01:05
1,按照之前的介绍先搭建一个struts2+spring的项目。
2,加入json要用的jar包。
(1)json-lib-jdk.jar:这个是java相关的类库,用它可以将普通的java对象转化成json格式的对象;
(2)struts2-json-plugin.jar:是struts2对json的支持,体现在struts的配置文件的result标签;
(2)json-lib-jdk.jar依赖的相关jar文件:会大量调用commons-*的jar,主要有:commons-beanutils-1.8.0.jar,commons-collections-3.1.jar,commons-lang-2.5.jar,commons-lang3-3.2.jar(和前面的不一样,这两个都得要。。。),commons-logging-1.1.3.jar。最后还有一个ezmorph-1.0.3.jar。上面少一个都不能运行。
3,struts2的配置文件:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <constant name="struts.action.extension" value="do"/> <package name="default" extends="json-default"> <action name="index" class="ajaxAction"> <result name="success">/WEB-INF/jsp/index.jsp</result> </action> <action name="ajax" class="ajaxAction" method="f"> <result type="json"> <param name="root">result</param> </result> </action> </package></struts>result 的type是json,param的name是root,这是固定的格式,result是action的一个变量,会传到ajax的success函数,在action中要有这个变量的getter方法。
4,Action:
package com.action;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import com.bean.People;import com.opensymphony.xwork2.ActionSupport;import net.sf.json.JSONObject;public class AjaxAction extends ActionSupport{/** * */private static final long serialVersionUID = 1L;private String result;private String params;public String execute(){ return SUCCESS;}public String f(){ data();System.out.println("接收到参数: "+params);return SUCCESS;}private void data(){ArrayList<People> list = new ArrayList<People>();People p1 = new People();p1.setAddress("a1");p1.setName("l1");People p2 = new People();p2.setAddress("a2");p2.setName("l2");list.add(p1);list.add(p2);Map<String,Object> map = new HashMap<String,Object>();map.put("hehe", "meme");map.put("glgl", list);result = JSONObject.fromObject(map).toString();}public String getResult() {return result;}public void setResult(String result) {this.result = result;}public String getParams() {return params;}public void setParams(String params) {this.params = params;}}
把所有的数据都放在一个map中,然后使用jsonobject对象的方法将普通的java对象转化成json格式的对象,result就是json格式对象的string格式,这才是最终返回到ajax的数据。
5,前台:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Insert title here</title><script type="text/javascript" src="js/jquery-1.4.4.min.js"></script></head><body><h3>success</h3></body><script type="text/javascript">$(document).ready(function(){$.post( "ajax.do", {params:"ajaxParam"}, function(data){ console.log(data); var member = eval("("+data+")"); alert(member.hehe); alert(member.glgl[0].name); },"json");});</script></html>
$.ajax函数的参数是键值对,可以设置很多东西。
$.post是上面的一个简体版,参数就是string。在success函数里面要访问data,要做一个处理,用eval函数。因为后台返回的是一个string,而这里我们要用面向对象的方式访问,也就是点号,很显然对一个string是不可以的,必须将它转化成js的对象,才行。
后台传来的数据:
项目源码:
http://pan.baidu.com/s/1mgY1HSO
0 0
- 【SSH (七) 】使用ajax + json 交互
- 使用JSON-RPC-Java完成Ajax交互
- 使用JSON-RPC-Java完成Ajax交互
- 使用JSON-RPC-Java完成Ajax交互
- Ajax&Json交互实例
- 初试SSH2中使用ajax和json进行交互
- java servlet使用jquery 的ajax交互 传递json对象
- Spring中使用json和前端ajax交互
- jQuery Ajax前后端使用JSON进行交互
- struts2中使用json格式ajax与后端action交互
- 使用jquery的ajax进行异步交互(json格式)
- Ajax 使用 json 进行数据交互,实现 级联菜单功能
- ssh 和 ajax交互代码
- 【基于SSH框架的个人博客系统05】ajax异步通讯技术与json交互
- ssh,json,easyui,ajax前后台交互(只提供主要代码)
- ssh框架使用json和ajax传递参数的区别
- php json ajax 交互示例
- Ajax Java 交互(json)
- gulp详细入门教程
- 白色情人节临摹盒子登陆页面3.14
- 前端展示时间戳问题
- 【iOS】Effective Objective-C
- 欢迎使用CSDN-markdown编辑器
- 【SSH (七) 】使用ajax + json 交互
- GPIO内核之旅
- [模式识别]近邻法及错误分析
- Date 时区
- 简单使用redis
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- C++友元函数和类
- 文档内的当前编码不能正确保存文档内所有字符,可能需改为UTF-8支持的编码
- HipHop算法:利用微博互动关系挖掘社交圈