- 浏览: 174275 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
gwill_21:
dwr.xml找不到怎么办,难道要自己手写dwr.xml?痛苦 ...
DWR框架 —— 用户注册验证 -
recoba7:
MLDN魔乐科技 Oracle学习笔记 (5) -
lanni2460:
呵呵 尽管现在才看到这个 但是我真的觉得 李老师 讲的很好呢 ...
严重声明,那些恶意诋毁MLDN及李兴华老师的其他培训机构统统走开 -
chian_xxp:
只要把功能实现了,代码结构合理了,代码性能提高了,该注意的注意 ...
业务、业务、业务。。。 -
wzpbb:
密码多少啊??? 给一下啊
MLDN 魔乐科技 Oracle 学习笔记(2)
在Java开发中,如果要使用JSON进行开发,需要一些支持,这里使用JSON-lib进行处理。
在开发AJAX中,进入了Servlet或Action,需要将查询出的数据转换为JSON对象,再将JSON对象转换为字符串输出回页面
示例:联动菜单
(1)建立项目,
(2)加入SSH支持
(3)处理jar包
删除asm-2.2.3.jar、ehcache-1.1.jar,加入commons-pool.jar支持jar包
(4)配置struts与spring的插件支持
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config> <data-sources /> <form-beans> </form-beans>
<global-exceptions /> <global-forwards /> <action-mappings> </action-mappings> <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"> </controller> <message-resources parameter="org.liky.json.struts.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" /> </plug-in> </struts-config> |
(5)配置数据源及dbc
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.gjt.mm.mysql.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/ajax"></property> <property name="username" value="root"></property> <property name="password" value="mysqladmin"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>org/liky/json/pojo/Areaplus.hbm.xml</value> <value>org/liky/json/pojo/Area.hbm.xml</value> </list> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory"></ref> </property> </bean> <bean id="areadaoimpl" class="org.liky.json.dao.impl.AreaDAOImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"></ref> </property> </bean>
</beans> |
(6)生成pojo映射
package org.liky.json.pojo;
public class Areaplus implements java.io.Serializable {
// Fields
private Integer id;
private Area area;
private String title;
// Constructors
public Areaplus() { }
public Areaplus(Area area) { this.area = area; }
public Areaplus(Area area, String title) { this.area = area; this.title = title; }
// Property accessors
public Integer getId() { return this.id; }
public void setId(Integer id) { this.id = id; }
public Area getArea() { return this.area; }
public void setArea(Area area) { this.area = area; }
public String getTitle() { return this.title; }
public void setTitle(String title) { this.title = title; }
} |
package org.liky.json.pojo;
import java.util.HashSet; import java.util.Set;
public class Area implements java.io.Serializable {
// Fields
private Integer id;
private String title;
private Set areapluses = new HashSet(0);
// Constructors
public Area() { }
public Area(String title) { this.title = title; }
public Area(String title, Set areapluses) { this.title = title; this.areapluses = areapluses; }
// Property accessors
public Integer getId() { return this.id; }
public void setId(Integer id) { this.id = id; }
public String getTitle() { return this.title; }
public void setTitle(String title) { this.title = title; }
public Set getAreapluses() { return this.areapluses; }
public void setAreapluses(Set areapluses) { this.areapluses = areapluses; }
} |
(7)编写DAO和实现类
package org.liky.json.dao.impl;
import java.util.List;
import org.liky.json.dao.AreaplusDAO; import org.liky.json.pojo.Areaplus; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class AreaplusDAOImpl extends HibernateDaoSupport implements AreaplusDAO {
public List<Areaplus> findByUpid(int upid) throws Exception { // TODO Auto-generated method stub return this.getHibernateTemplate().find( "FROM Areaplus AS a WHERE a.area.id = ?", upid); }
}
|
package org.liky.json.dao.impl;
import java.util.List;
import org.liky.json.dao.AreaDAO; import org.liky.json.pojo.Area; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class AreaDAOImpl extends HibernateDaoSupport implements AreaDAO {
public List<Area> findAll() throws Exception { // TODO Auto-generated method stub return this.getHibernateTemplate().find("FROM Area"); }
}
|
(8)把实现配置到applicationContext.xml中
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory"></ref> </property> </bean> <bean id="areadaoimpl" class="org.liky.json.dao.impl.AreaDAOImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"></ref> </property> </bean> <bean id="areaplusdaoimpl" class="org.liky.json.dao.impl.AreaplusDAOImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"></ref> </property> </bean>
|
(9)通过一个连接,进入级联菜单显示页面,需要先查询出所有一级栏目(省份信息)
private AreaDAO areadao;
private AreaplusDAO areaplusdao;
public void setAreadao(AreaDAO areadao) { this.areadao = areadao; }
public void setAreaplusdao(AreaplusDAO areaplusdao) { this.areaplusdao = areaplusdao; }
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { AreaForm areaForm = (AreaForm) form;// TODO Auto-generated method stub
try { List all = this.areadao.findAll(); request.setAttribute("all", all); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
return mapping.findForward("list"); } |
(10)将Action配置到spring管理中
<bean name="/area" class="org.liky.json.struts.action.AreaAction"> <property name="areadao"> <ref bean="areadaoimpl"></ref> </property> <property name="areaplusdao"> <ref bean="areaplusdaoimpl"></ref> </property> </bean> |
列表显示一级栏目
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"> <head> <html:base />
<title>list.jsp</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"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body> <center> 省份信息: <select name="area"> <option value="0"> -请选择省份- </option> <logic:iterate id="area" name="all" scope="request"> <option value="${area.id }"> ${area.title } </option> </logic:iterate> </select>
城市信息: <select name="plus"> <option value="0"> -请选择城市- </option> </select> </center>
</body> </html:html>
|
(11)编写调用的js方法
<script type="text/javascript"> var xmlHttp ;
function createXmlHttp() { if (window.XmlHttpRequest) { xmlHttp = new XmlHttpRequest(); } else { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } }
function showplus(upid) { createXmlHttp(); xmlHttp.onreadystatechange = showplusCallback ; xmlHttp.open("POST","area.do?status=showplus&upid="+upid); xmlHttp.send(null); }
function showplusCallback() {
}
</script> |
(12)完成后台Action中的代码
由于需要用到Java对JSON的解析处理,因此为项目导入JSON支持jar包
public ActionForward showplus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { AreaForm areaForm = (AreaForm) form;// TODO Auto-generated method stub
List all = null; try { all = this.areaplusdao.findByUpid(areaForm.getUpid()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
// 将查询的数据处理成为JSON对象 // 将JSON-lib的支持jar包导入到项目中 if (all != null && all.size() > 0) { Iterator iter = all.iterator(); // 定义一个JSON对象 JSONObject root = new JSONObject();
// 定义一个JSON数组,保存所有的Areaplus的数据 JSONArray areapluses = new JSONArray();
while (iter.hasNext()) { Areaplus a = (Areaplus) iter.next(); // 定义数组中的对象 JSONObject areaplus = new JSONObject(); // 为JSON的areaplus加入属性 areaplus.put("id", a.getId()); areaplus.put("title", a.getTitle()); // 将Object对象加入到数组中 areapluses.add(areaplus); } // 将数组加入到root中 root.put("areapluses", areapluses); // 定义PrintWriter对象,返回数据 // 处理乱码 response.setCharacterEncoding("GBK"); try { PrintWriter out = response.getWriter(); out.print(root.toString()); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
}
return null; |
(13)在回调函数中取得返回的数据,并转换为JSON对象,同时进行处理。
可以直接使用JSON提供的json.js中的方法,将一个标准JSON对象的字符串转换为一个js对象
<script type="text/javascript" src="json.js"></script> <script type="text/javascript"> var xmlHttp ;
function createXmlHttp() { if (window.XmlHttpRequest) { xmlHttp = new XmlHttpRequest(); } else { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } }
function showplus(upid) { createXmlHttp(); xmlHttp.onreadystatechange = showplusCallback ; xmlHttp.open("POST","area.do?status=showplus&upid="+upid); xmlHttp.send(null); }
function showplusCallback() { if (xmlHttp.readyState == 4) { // 接收数据 var str = xmlHttp.responseText ; // 转换为对象 var obj = str.parseJSON(); // 先将下拉列表清空 var select = document.getElementById("plus") ; select.options.length = 1 ; // 循环返回的areaplus数据 for (var i = 0 ; i < obj.areapluses.length ;i ++) { var areaplus = obj.areapluses[i]; // 建立option var option = document.createElement("option"); // 设置value属性 option.setAttribute("value",areaplus.id); // 设置显示内容 option.appendChild(document.createTextNode(areaplus.title)); // 设置下拉列表 select.appendChild(option); }
} }
</script> |
(14)启动测试后,发现导入commons-collections-2.1.1包中的类并不全,需要将单独下载的完全版的这个jar包替换到项目中
发表评论
-
本小姐回来啦 —— 超级感谢MLDN
2009-08-10 13:24 1615我又回来了!哈哈,报告一个好消息,我已经成功入职博彦科 ... -
现在开始积极的找工作
2009-07-05 19:13 1188学习差不多了,得赶在毕业前找到一个工作啊,本小姐这段时 ... -
素质教育 —— 模拟面试
2009-06-30 19:10 1069今天一天都安排了职业素质的培养,包括简历的指导、技术面 ... -
EJB实体Bean开发的复合主键映射
2009-06-29 21:36 1699复合主键的映射:在Hibernate中是通过一个主键类来完成复 ... -
EJB实体Bean开发
2009-06-29 21:33 999EJB实体Bean开发的数据库连接采用数据源连接池的方式,因此 ... -
EJB3.0
2009-06-28 14:14 1245EJB是SUN公司提出的开发 ... -
JBoss服务器配置
2009-06-25 21:21 2086哦,哦,哦,EJB的准备课程啊。 这里开发使用的是 JB ... -
Spring结合iBATIS进行开发
2009-06-25 21:19 987使用Spring管理iBATIS完全可以参照Spring+Hi ... -
ibatis开发框架
2009-06-25 21:17 1286iBATIS为一个ORMapping框架,可以帮助开发人员完成 ... -
WebService分布式开发
2009-06-24 22:23 1916WebService:用来跨语言传递数据。 数据交互是通过XM ... -
北京下雨了
2009-06-18 19:56 779上次在公交车上,听到电视里放《北京下雨了》,那么北京今天 ... -
JQuery
2009-06-10 21:03 12761、JQuery的基本语法 ... -
AJAX框架 —— JSON基本知识
2009-06-10 21:01 960我真想知道这年头到底有多少种框架。 1、JSON ... -
还应该多帮助同学,才能让自己进步快
2009-06-08 21:57 1012今天对于本小姐来讲还真是相对轻松的一天啊,上周完成了任 ... -
业务、业务、业务。。。
2009-06-03 18:41 1158项目就是业务,项目中都是业务,技术就这么点东西,只要把 ... -
IBM Project 继续中ing....
2009-06-02 19:08 886项目就是要坚持的做下去,而且要想到做到最好,虽然框架很好 ... -
实际开发了
2009-06-01 18:17 901今天开始新的项目了,项目老师帮我们搭建好了SVN服务器, ... -
web学习笔记 —— 数据源
2009-05-31 19:56 1042使用数据源可以提升数据库的操作性能,当然,不管使用与否,对于程 ... -
SSH(Spring + Struts + Hibernate)
2009-05-31 19:47 2504Spring结合Hibernate ... -
Spring中的控制反转(IOC)
2009-05-30 16:29 784什么控制反转,还弄了一个新名词 —— ioc,说白了就 ...
相关推荐
在Ajax中使用JSON作为数据传输格式,可以实现高效、简洁的数据交换。 **JSON的优势:** 1. **易于理解**:JSON格式基于JavaScript语法,因此对于JavaScript开发者来说,理解和解析JSON非常直观。 2. **小巧高效**:...
本案例主要展示了如何在Ajax中使用JSON进行数据提交和接收。首先,我们看到一个名为`jsonExample.jsp`的页面,这个页面包含了一些JavaScript代码,这些代码用于处理Ajax请求和JSON操作。 1. **创建XMLHttpRequest...
在AJAX中使用JSON,可以实现高效的数据传输,提高用户体验。 **一、JSON的基本概念** JSON是一种基于文本的数据交换格式,它源自JavaScript对象表示法。一个JSON对象由键值对组成,键和值之间用冒号分隔,键值对...
AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的页面刷新,提升了用户体验。通过理解并熟练掌握AJAX的异步通信机制以及JSON的数据交换格式,开发者能够构建出更加高效、流畅的Web...
"使用Ajax动态加载JSON文件"这个主题就涉及到了两个核心概念:Ajax和JSON。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。而JSON(JavaScript Object ...
ajax json 遍历json数组,json的说明文档,json操作说明
在Ajax中使用JSON,通常有以下步骤: 1. **客户端请求**:JavaScript通过Ajax调用XMLHttpRequest对象,向服务器发送请求。 2. **服务器处理**:服务器接收到请求后,处理数据,并将其转换为JSON格式。 3. **数据响应...
在实际应用中,Ajax与Json结合使用可以实现各种复杂的交互,例如用户登录验证、表单提交、动态加载内容等。通过Ajax,我们可以实现无刷新的用户体验,而Json则简化了数据的序列化和反序列化过程,使得前后端的数据...
AjaxJson 是一种在 Web 应用程序中实现异步数据交换的技术,它结合了 AJAX(Asynchronous JavaScript and XML)和 JSON(JavaScript Object Notation)的优势,使得网页可以在不刷新整个页面的情况下与服务器进行...
在Ajax中使用JSON,首先要将服务器端的数据以JSON格式返回。例如,一个简单的JSON响应可能如下所示: ```json { "name": "John Doe", "age": 30, "city": "New York" } ``` 客户端使用Ajax请求获取该数据,通常...
在Ajax中使用Json,通常涉及到以下步骤: 1. **创建XMLHttpRequest对象**:首先,我们需要在JavaScript中创建一个XMLHttpRequest实例。 2. **打开连接**:然后,调用XMLHttpRequest对象的open()方法,指定请求类型...
当使用Ajax获取JSON数据时,我们通常使用jQuery的`$.ajax()`方法。这个方法允许我们设置请求的URL、类型(GET或POST)、数据格式(如'json')等参数。例如: ```javascript $.ajax({ url: 'your/local/json/data/...
在描述中提到的`AjaxJson.java`文件,就是这样一个实体类,它的设计目的是为了简化后端接口的返回数据封装,使得前端可以直接理解并处理这些数据。 `AjaxJson.java`的可能实现会如下所示: ```java public class ...
掌握Ajax使用 JSON 进行数据传输 掌握Ajax使用 JSON 进行数据传输 掌握Ajax使用 JSON 进行数据传输
本篇文章主要介绍了jQuery Ajax前后端使用JSON进行交互示例,实现前端通过jQuery Ajax传输json到后端,后端接收json,对json进行处理,后端返回一个json给前端,有兴趣的可以了解一下。
jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换...