java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理
XML
1、引入dom4j-2.0.0.jar
2、引入jquery-1.8.2.js
3、新建common.js
getInfo = function(){
    $.post("getXmlAction.action",{name:$('#name').val()},function(ret,status){
        if("success" == status)
            var id = $(ret).find("id").text();
            var age = $(ret).find("age").text();
            var address = $(ret).find("address").text();
            var name = $(ret).find("name").text();
            var html = "<table>" +
                    "<tr>" +
                    "<th>" +id+age+address+name
                    "</th>"+
                    "</tr>" +
                    "</table>"
             $('body table:eq(0)').remove();
             $('#xmlbody').append(html);
    });
}
getJson = function(){
    $.post("getJsonAction.action",{name:$('#name').val()},function(ret,status){
        if("success" == status){
        
        }
    });
}
4、新建xmlTest.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="scripts/common.js"></script>
</head> <body id="xmlbody">
<select id="name">
<option value="james" selected="selected">james</option>
<option value="currey">currey</option>
</select>
<input type="button" value="getInfo" onclick="getInfo();"/>
</body>
</html>
5、修改struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"> <struts>
<package name="testSSH" extends="struts-default"> <action name="getXmlAction" class="com.test.action.xml.GetXmlAction"> </action>
</package>
</struts>
6、新建GetXmlAction.java
package com.test.action.xml; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext;
import org.dom4j.*;
import org.dom4j.io.*;
import com.opensymphony.xwork2.ActionSupport; public class GetXmlAction extends ActionSupport { private static final long serialVersionUID = 1L; private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String execute() throws Exception {
person person1 = new person();
person1.setAge(11);
person1.setName("james");
person1.setId(1);
person1.setAddress("beijing"); person person2 = new person();
person2.setId(2);
person2.setAddress("shanghai");
person2.setAge(12);
person2.setName("currey"); //创建 xml 对象
Document document = DocumentHelper.createDocument();
//创建根元素
Element rootElement = document.addElement("users");
Element userElement = rootElement.addElement("user");
Element idElement = userElement.addElement("Id");
Element ageElement = userElement.addElement("age");
Element addressElement = userElement.addElement("address");
Element nameElement = userElement.addElement("name");
if("james".equals(this.name)){
idElement.setText(person1.getId()+"");
ageElement.setText(person1.getAge()+"");
addressElement.setText(person1.getAddress());
nameElement.setText(person1.getName());
}else{
idElement.setText(person2.getId()+"");
ageElement.setText(person2.getAge()+"");
addressElement.setText(person2.getAddress());
nameElement.setText(person2.getName());
}
HttpServletResponse response = ServletActionContext.getResponse();
//设置返回类型
response.setContentType("text/xml; charset=UTF-8 ");
//清除浏览器缓存
response.setHeader("Cache-Control", "no-cache");
//定义输出流
PrintWriter out = response.getWriter();
//定义格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
//定义XMLWriter 对象,将document 对象,输出到客户端
XMLWriter writer = new XMLWriter(out,format);
writer.write(document);
out.flush();
out.close();
return null;
}
}
JSON
1、引入struts2-json-plugin.jar、json-lib.jar包
2、配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"> <struts>
// 继承自json-default 而json-default继承自 struts-default
<package name="testSSH" extends="json-default">
//异步请求不定义返回值
<action name="getXmlAction" class="com.test.action.xml.GetXmlAction"></action>
//异步请求返回值为SUCCESS,定义类型为json 即可,客户端到服务端序列化的过程交由core 处理
<action name="getJsonAction" class="com.test.action.json.GetJsonAction">
<result name="success" type="json">
//排除 属性 name MyAge【指向别名】
<param name="excludeProperties">name,MyAge</param>
// 只解析root
<param name="root">person</param>
</result>
</action> </package>
</struts>
3、定义GetJsonAction.java
package com.test.action.json; import org.apache.struts2.json.annotations.JSON;
import java.util.*; import com.opensymphony.xwork2.ActionSupport;
import com.test.action.json.person; public class GetJsonAction extends ActionSupport { private static final long serialVersionUID = 1L; //客户端传入的名称
private String name; private int age; private String address; private int id; private Date date; private person person = new person(); public person getPerson() {
return person;
} public void setPerson(person person) {
this.person = person;
} @JSON(format = "yyyy-MM-dd")
public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @JSON(name = "MyAddress")
public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @JSON(serialize=false)
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} //将Action 的成员变量序列化成json对象
@Override
public String execute() throws Exception {
person person1 = new person();
person1.setAge(11);
person1.setName("james");
person1.setId(1);
person1.setAddress("beijing");
person1.setDate(new Date()); person person2 = new person();
person2.setId(2);
person2.setAddress("shanghai");
person2.setAge(12);
person2.setName("currey");
person2.setDate(new Date()); if("james".equals(this.name)){
this.id = person1.getId();
this.age = person1.getAge();
this.address = person1.getAddress();
this.date = person1.getDate();
}else{
this.id = person2.getId();
this.age = person2.getAge();
this.address = person2.getAddress();
this.date = person2.getDate();
} return SUCCESS;
}
}
4、定义person属性类
package com.test.action.json;
import java.util.*; public class person { private int id;
private String name;
private int age;
private String address;
private Date date; public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }
5、引入jsonText.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="scripts/common.js"></script>
</head> <body id="xmlbody">
<select id="name">
<option value="james" selected="selected">james</option>
<option value="currey">currey</option>
</select>
<input type="button" value="getInfo" onclick="getJson();"/>
</body>
</html>
java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理的更多相关文章
- java学习笔记(13) —— google GSON 实现json转化方法
		1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ... 
- java学习笔记(11) —— Struts2与Spring的整合
		1.右键 项目名称 —— MyEclipse —— Add Spring Capabilities 2.选取 Copy checked Library contents to project fold ... 
- java学习笔记 (9) —— Struts2 国际化
		1.Test.java package com.i18n; import java.util.Locale; public class Test1 { public static void main( ... 
- java学习笔记 (8) —— Struts2 实现上传
		1.新建upload.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ... 
- java学习笔记 (2) —— Struts2类型转换、数据验证重要知识点
		1.*Action.conversion-properties 如(point=com.test.Converter.PointListConverter) 具体操作类的配置文件 2.*Action. ... 
- Java学习笔记(十)——xml
		[前面的话] 学习过程中还是效率不够高,老是容易注意力不集中,着急啊.不能在这样了,要好好学习,好好努力. 学习过程中的小知识点总结,基础知识,选择阅读. [xml定义] 定义:可扩展标记语言(英语: ... 
- UI学习笔记---第十六天XML JSON解析
		一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ... 
- Java学习笔记12
		循环 打印一个字符串(例如: "Welcome to Java!") 100次,就需要吧下面的输出语句重复写100遍,这是相当繁琐的: System.out.println(&qu ... 
- java学习笔记 (5) —— Struts2 监听器配置
		1.创建MyListener.java 实现 PreResultLisener 接口 import com.opensymphony.xwork2.ActionInvocation; import c ... 
随机推荐
- udp丢包原因分析
			1. 发送方没有进行频率控制(令牌桶算法),短时间内大量的包发送到server端,server端是单线程,先epoll wait,再process,就会造程process时丢掉server传过来的包 ... 
- Substrings
			hdu1238:http://acm.hdu.edu.cn/showproblem.php?pid=1238 题意:给你n个串,求一个子串,这个子串在所有串中都出现,或者在逆串中出现.求最大的这个子串 ... 
- Android AlarmManager实现不间断轮询服务
			在消息的获取上是选择 轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如 更新检查,可能是半个小时或一个小 ... 
- JAVA首选五款开源Web开发框架
			Spring Spring是一个开源的Java/Java EE全功能栈应用程序框架,在JavaEE社区中非常受欢迎,以Apache许可证形式发布,也有.NET平台上的移植版本. Struts2 Str ... 
- delphi 托盘程序 转
			Delphi的托盘编程 .现在很多程序都用这个,比如傲游,迅雷等,主要代码如下: uses Windows, Messages, SysUtils, Variants, Classes, Grap ... 
- 哈希表的C语言实现
			首先介绍一下什么是哈希表.同线性表.树一样,哈希表也是一种数据结构,理想情况下可以不需要任何比较,一次存取便能得到所查记录.所以它的优点就是查找特定记录的速度快.因为哈希表是基于数组的,所以创建后就难 ... 
- Java 8 中新的 Date 和 Time 类入门详解
			这篇文章主要是java8中新的Date和Time API的实战.新的Date和Time类是java开发者社区千呼万唤始出来的.Java8 之前存在的Date类一直都受人诟病,很多人都会选择使用第三方的 ... 
- 在SQL中用正则表达式替换html标签
			由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都替换掉.当然我可以通过写一个程序去修改,那毕竟有点麻烦.直接在查询分析器中执行,但是MS SQL Server并没有 ... 
- jQuery on()绑定动态元素出现的问题小结
			jQuery on()方法是官方推荐的绑定事件的一个方法.使用 on() 方法可以给将来动态创建的动态元素绑定指定的事件,通过本文给大家介绍jQuery on()绑定动态元素出现的问题小结,需要的朋友 ... 
- Android学习笔记(十一)——从意图返回结果
			从意图返回结果 startActivity()方法调用还有一个活动,但并没有返回结果给当前活动.此时如想从一个活动中回传数据,就要使用startActivityForResult()方法. 点此获取完 ... 
