struts2 jquery xml

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" onclick="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;
	
	}
}

你可能感兴趣的:(apache,jquery,xml,浏览器,struts)