1.引入下jquery.js类库 http://jquery.com/ 建立页面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="jquery/jquery.js"></script>
- <script type="text/javascript">
- function getInfo()
- {
- $.post("getXmlAction.action",
- {
- //发送参数name及值
- name: $("#name").val()
- }, function(returnedData, status)
- {
- //服务器返回成功的值
- if("success" == status)
- {
- //根据服务器返回的xml,获取各个节点的值
- var id = $(returnedData).find("id").text();
- var name = $(returnedData).find("name").text();
- var age = $(returnedData).find("age").text();
- var address = $(returnedData).find("address").text();
- //动态添加表格
- var html = "<table width='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr><tr align='center'><td>" + id + "</td><td>" + name + "</td><td>"+ age + "</td><td>" + address + "</td></tr></table>";
- //获得浏览器值,先清空浏览器表格数据
- $("body table:eq(0)").remove();
- //把动态获取的表格添加到页面中
- $("#theBody").append(html);
- }
- }
- );
- }
- </script>
- </head>
- <body id="theBody">
- <select id="name">
- <option value="zhangsan" selected="selected">zhangsan</option>
- <option value="lisi">lisi</option>
- </select>
- <input type="button" value="get info" οnclick="getInfo();">
- </body>
- </html>
<%@ 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="jquery/jquery.js"></script>
<script type="text/javascript">
function getInfo()
{
$.post("getXmlAction.action",
{
//发送参数name及值
name: $("#name").val()
}, function(returnedData, status)
{
//服务器返回成功的值
if("success" == status)
{
//根据服务器返回的xml,获取各个节点的值
var id = $(returnedData).find("id").text();
var name = $(returnedData).find("name").text();
var age = $(returnedData).find("age").text();
var address = $(returnedData).find("address").text();
//动态添加表格
var html = "<table width='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr><tr align='center'><td>" + id + "</td><td>" + name + "</td><td>"+ age + "</td><td>" + address + "</td></tr></table>";
//获得浏览器值,先清空浏览器表格数据
$("body table:eq(0)").remove();
//把动态获取的表格添加到页面中
$("#theBody").append(html);
}
}
);
}
</script>
</head>
<body id="theBody">
<select id="name">
<option value="zhangsan" selected="selected">zhangsan</option>
<option value="lisi">lisi</option>
</select>
<input type="button" value="get info" οnclick="getInfo();">
</body>
</html>
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>
- <package name="struts2.1" extends="json-default">
- <action name="getXmlAction" class="com.test.action.xml.GetXmlAction"></action>
- </package>
- </struts>
3 使用dom4j创建xml文档 下载dom4j.jar引入到项目
http://www.dom4j.org/dom4j-1.6.1/
- 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.OutputFormat;
- import org.dom4j.io.XMLWriter;
- import com.opensymphony.xwork2.ActionSupport;
- public class GetXmlAction extends ActionSupport {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public String execute() throws Exception {
- //zhangsan
- Person person1 = new Person();
- person1.setId(1);
- person1.setName("zhangsan");
- person1.setAge(20);
- person1.setAddress("shanghai");
- //lisi
- Person person2 = new Person();
- person2.setId(2);
- person2.setName("lisi");
- person2.setAge(30);
- person2.setAddress("tianjin");
- //代表整个xml文档
- Document document = DocumentHelper.createDocument();
- //代表文档根元素
- Element rootElement = document.addElement("users");
- //增加一个注释
- rootElement.addComment("This is a comment!");
- //增加一个根元素下的一个user子元素
- Element userElement = rootElement.addElement("user");
- //增加一个user子元素的一个各个user属性子元素
- Element idElement = userElement.addElement("id");
- Element nameElement = userElement.addElement("name");
- Element ageElement = userElement.addElement("age");
- Element addressElement = userElement.addElement("address");
- //文档节点赋值
- if("zhangsan".equals(this.name))
- {
- idElement.setText(person1.getId() + "");
- nameElement.setText(person1.getName());
- ageElement.setText(person1.getAge() + "");
- addressElement.setText(person1.getAddress());
- }
- else
- {
- idElement.setText(person2.getId() + "");
- nameElement.setText(person2.getName());
- ageElement.setText(person2.getAge() + "");
- addressElement.setText(person2.getAddress());
- }
- //获得客户端的相应的response对象 并设置向客户端输出的格式
- HttpServletResponse response = ServletActionContext.getResponse();
- response.setContentType("text/xml; charset=utf-8");//客户端的输入格式 和字体
- response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存
- //获取向客户端输出流
- PrintWriter out = response.getWriter();
- //dom4j的输出格式
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("utf-8");
- XMLWriter writer = new XMLWriter(out, format);
- //把文档格式document写到输出流中out中 返回给客户端
- writer.write(document);
- out.flush();
- out.close();
- return null;
- }
- }