如今B/S结构的系统使用Ajax技术是再平常只是的了。今天我们就来探讨下在JSPGenSDF第四版中:怎样使用Ajax技术、怎样输出XML文件及JSON格式数据输出。

怎样搭建一个最基础的JSPGenSDF项目,请參考:http://blog.csdn.net/jspgen/article/details/30825879 

技术交流QQ群:12349848

一、基础介绍

Ajax:一种创建交互式应用的网页开发技术,在不又一次载入整个页面的情况下,能够与server交换数据并更新部分网页内容。
XML:一种扩展性标识语言。属文件格式。在互联网应用中经常使用于多类型数据文件传输。

JSON:一种轻量级的数据交换格式,纯文本型。

作为传输数据方面,JSON比XML更具优势:
1、XML文件庞大, 格式复杂, 传输占用带宽;JSON数据格式比較简单, 易于读写,占用带宽小。

2、XML文件服务端和client都须要花费大量代码来解析XML,异常复杂、不easy维护;JSON服务端和client均易于解析这样的数据格式。

JSPGenSDF第四版对Ajax有非常好的支持,服务端均可直接输出XML文件及JSON数据格式,项目使用中我们能够依据业务情况任选一种传输数据格式。

代码实现方面。我们看以下详细的样例。

二、測试代码

A、AjaxAction.java

Ajax动作:

package jspgen.action;
import grapes.Dates;
import grapes.Files;
import grapes.Grapes; import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; /**
* Action类:Ajax 演示
*
* @author JSPGen
* @copyright (c) JSPGen.com
* @created 2014年06月
* @email jspgen@163.com
* @address www.jspgen.com
*/
public class AjaxAction extends Action {
/**
* 默认方法
*/
@Override
public String execute() {
String type = getParameter("type");
if(type != null && "json".equals(type)) {
// JSON输出
/*
// 第一种方式
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", getParameter("name"));
map.put("name", getParameter("description"));
return json(true, map);
*/
// 另外一种方式
String message = "来自服务端," + getParameter("name") + " " + getParameter("description");
return json(true, message);
} else {
// 拼装xml字符串
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"? >"
+"<root>"
+" <name>"+getParameter("name")+"</name>"
+" <description>"+getParameter("description")+"</description>"
+"</root>";
return xml(xmlStr);
}
}
}

注意:JSPGenSDF第四版中对JSON数据输出进行了调整。JSON输出包括的必备属性有:status、message、store。分别相应于:操作状态、操作消息(含错误信息)、数据集合(一般用于对象属性输出)。效果图例如以下:

B、testAjax.html

Ajax调用页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test Ajax</title>
</head>
<body>
<h2>Ajax Test</h2>
<a href="javascript:void(0);" onclick="testAjax();">读取JSON数据</a>
<a href="/jspgensdf/ajax.gen?type=xml&name=JSPGener&description=Hello!" target="_blank">输出XML文件</a><br /><br />
<script type="text/javascript" src="/jspgensdf/static/js/jquery.js"></script>
<script type="text/javascript">
function testAjax(){
$.ajax({
type: 'POST',
url: '/jspgensdf/ajax.gen?type=json',
data: {name:'JSPGener', description:'好嚣张!'},
dataType: 'json',
// 请求成功后触发
success: function (result) {
// {'status':'false', 'message':'message'}
if (result.status == true) {
alert('成功信息:'+result.message);
}else{
alert('错误信息:'+result.message);
}
},
// 请求失败遇到异常触发
error: function (xhr, status, error) {
alert(status);
}
});
}
</script>
</body>
</html>

三、測试

浏览器中直接输入:http://localhost:8080/jspgensdf/ajaxTest.html

便可进入測试页面,分别点击:读取JSON数据、输出XML文件链接,会出现例如以下效果图,弹窗说明ajax请求已经成功,后端接收并进行处理的数据已经传到了前端页面。

 

 

 

 

跟阿根一起学Java Web开发二:使用Ajax技术及XML与JSON实现输出的更多相关文章

  1. 跟阿根一起学Java Web开发一:开发环境搭建及JSPGen基础配置

    JSPGenSDF软件开发框架(于2014年5月5号公布4.0版).简称JSPGen,专用Java Web方面平台式软件开发,整个框架也能够说是前台与后台的一个粘合剂,如今对JSPGenSDF进行开发 ...

  2. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

  3. java web开发必备知识

    从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...

  4. 《Java web 开发实战经典》读书笔记

    去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...

  5. Java Web开发中路径问题小结

     Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...

  6. Java Web 开发中路径相关问题小结

    Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...

  7. 《Java Web开发实战》——Java工程师必备干货教材

    一年一度毕业季,又到了简历.offer漫天飞,失望与希望并存的时节.在IT行业,高校毕业生求职时,面临的第一道门槛就是技能与经验的考验,但学校往往更注重学生的理论知识,忽略了对学生实践能力的培养,因而 ...

  8. Java Web开发技术教程入门-静态网页技术

        昨天了解了构建动态网站的几种技术:Servlet技术.JSP技术,ASP技术和ASP.NET技术以及PHP技术.昨天的精髓在于JSP技术的运行原理:通过用户请求JSP文件,首先检查JSP文件的 ...

  9. 五分钟学Java:如何才能学好Java Web里这么多的技术

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

随机推荐

  1. java线程队列

    工作原理 1.线程池刚创建时,里面没有一个线程.任务队列是作为参数传进来的.不过,就算队列里面有任务,线程池也不会马上执行它们. 2.当调用 execute() 方法添加一个任务时,线程池会做如下判断 ...

  2. jqGrid的subGrid子表格

    使用完整jqGrid作为子表格 使用子表格,涉及到jqGrid的三个选项: subGrid :首先必须将jqGrid的subGrid选项设置为true,默认为false:当此项设为true的时候,Gr ...

  3. hdu1527

    hdu1527两堆博弈模型,威佐夫博弈 #include<iostream> #include<cstdio> #include<queue> #include&l ...

  4. python使用suds来调用webservice

    对于python仅作为客户端调用webservice的情况,推荐使用suds库来完成,比起zsi,soapy之类,它可以说是相当轻量级,使用非常方便. 安装suds建议使用easy_insall来做. ...

  5. Redis开发及管理实战

    目录 Redis数据类型 字符串 String string类型操作 字典 Hash 列表 List 集合 Set 有序集合 SortedSet 生产消费模型 Redis事务管理 事务命令 示例 Re ...

  6. java监控文件夹下的文件变化使用jnotify

    https://blog.csdn.net/codepython/article/details/42341243?utm_source=blogxgwz1 使用jnotify https://blo ...

  7. VS2010中Cocos2d-x中文乱码问题

    不罗嗦,直接进入主题,VS2010的默认编码是"GB2312",那么以创建一个label为例,当我们使用 CCLabelTTF::create(const char *label, ...

  8. redis键(key)

    redis键: 用于管理redis的键 command key_name > set runoodkey redis OK > del runoodkey 上面的例子中,del是一个命令, ...

  9. --1.plsql中学习job

    --1.plsql中学习job --学习job --建表 create table test_job(para_date date); commit; insert into test_job val ...

  10. Luogu P1073 最优贸易(最短路)

    P1073 最优贸易 题意 题目描述 \(C\)国有\(n\)个大城市和\(m\)条道路,每条道路连接这\(n\)个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这\(m\)条道路中有 ...