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 实现简单的业务处理的更多相关文章

  1. java学习笔记(13) —— google GSON 实现json转化方法

    1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...

  2. java学习笔记(11) —— Struts2与Spring的整合

    1.右键 项目名称 —— MyEclipse —— Add Spring Capabilities 2.选取 Copy checked Library contents to project fold ...

  3. java学习笔记 (9) —— Struts2 国际化

    1.Test.java package com.i18n; import java.util.Locale; public class Test1 { public static void main( ...

  4. java学习笔记 (8) —— Struts2 实现上传

    1.新建upload.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  5. java学习笔记 (2) —— Struts2类型转换、数据验证重要知识点

    1.*Action.conversion-properties 如(point=com.test.Converter.PointListConverter) 具体操作类的配置文件 2.*Action. ...

  6. Java学习笔记(十)——xml

    [前面的话] 学习过程中还是效率不够高,老是容易注意力不集中,着急啊.不能在这样了,要好好学习,好好努力. 学习过程中的小知识点总结,基础知识,选择阅读. [xml定义] 定义:可扩展标记语言(英语: ...

  7. UI学习笔记---第十六天XML JSON解析

    一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ...

  8. Java学习笔记12

    循环 打印一个字符串(例如: "Welcome to Java!") 100次,就需要吧下面的输出语句重复写100遍,这是相当繁琐的: System.out.println(&qu ...

  9. java学习笔记 (5) —— Struts2 监听器配置

    1.创建MyListener.java 实现 PreResultLisener 接口 import com.opensymphony.xwork2.ActionInvocation; import c ...

随机推荐

  1. 使用JQUERY实现局部页面定时刷新

    没办法,运维会一点点前端,还是有好处的.. 说不定,BOOTSTRAP也得会一点点.. 本想用流式输出的搞定的,但没搞定,就取巧了... 代理简单: <script src="//cd ...

  2. BZOJ 2434 阿狸的打字机

    http://www.lydsy.com/JudgeOnline/problem.php?id=2434 思路:建立fail树,并找出dfs序,那剩下要做的就是每次找到一个串的位置,然后询问它的区间里 ...

  3. keil C51绝对地址访问

    在利用keil进行8051单片机编程的时,常常需要进行绝对地址进行访问.特别是对硬件操作,如DA AD 采样 ,LCD 液晶操作,打印操作.等等.C51提供了三种访问绝对地址的方法: 1. 绝对宏 在 ...

  4. Qt经典—线程、事件与Qobject(耳目一新)

    介绍 You’re doing it wrong. — Bradley T. Hughes 线程是qt channel里最流行的讨论话题之一.许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到 ...

  5. 199bit总结的影响最大的十个算法

    1. 归并排序(MERGE SORT).快速排序(QUICK SORT)和堆积排序(HEAP SORT) 哪个排序算法效率最高?这要看情况.这也就是我把3种算法放在一起讲的原因,可能你更常用其中一种, ...

  6. House Robber——LeetCode

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  7. DateTime用法二

    任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到底是“/”,还是“\”,还是“-”等 ...

  8. HDOJ(HDU) 2097 Sky数(进制)

    Problem Description Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=2 ...

  9. jquery append

    将已经存在的一个dom对象A,通过jquery append插入另一个dom对象B,将会改变dom树结构--即A成为了B的子元素. 举个例子: js: $(".table-container ...

  10. java实现excel的导入导出(poi详解)[转]

    java实现excel的导入导出(poi详解) 博客分类: java技术 excel导出poijava  经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个 ...