struts2 jquery xml

1.引入下jquery.js类库 http://jquery.com/ 建立页面xmlTest.jsp

Java代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>   
  2.   
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
  4. <html>   
  5.   <head>   
  6.     <script type="text/javascript" src="jquery/jquery.js"></script>   
  7.     <script type="text/javascript">   
  8.     function getInfo()   
  9.     {   
  10.         $.post("getXmlAction.action",   
  11.         {      
  12.             //发送参数name及值   
  13.             name: $("#name").val()   
  14.         }, function(returnedData, status)   
  15.         {        
  16.             //服务器返回成功的值   
  17.             if("success" == status)   
  18.             {     
  19.                 //根据服务器返回的xml,获取各个节点的值   
  20.                 var id = $(returnedData).find("id").text();   
  21.                 var name = $(returnedData).find("name").text();   
  22.                 var age = $(returnedData).find("age").text();   
  23.                 var address = $(returnedData).find("address").text();   
  24.                 //动态添加表格   
  25.                 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>";   
  26.                 //获得浏览器值,先清空浏览器表格数据      
  27.                 $("body table:eq(0)").remove();   
  28.                  //把动态获取的表格添加到页面中    
  29.                 $("#theBody").append(html);   
  30.             }   
  31.         }   
  32.         );   
  33.     }   
  34.     </script>   
  35.   </head>   
  36.   <body id="theBody">   
  37.    <select id="name">   
  38.         <option value="zhangsan" selected="selected">zhangsan</option>   
  39.         <option value="lisi">lisi</option>   
  40.    </select>   
  41.    <input type="button" value="get info" οnclick="getInfo();">   
  42.   </body>   
  43. </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代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">  
  3. <struts>  
  4.     <package name="struts2.1" extends="json-default">  
  5.         <action name="getXmlAction" class="com.test.action.xml.GetXmlAction"></action>  
  6.     </package>  
  7. </struts>    


3 使用dom4j创建xml文档 下载dom4j.jar引入到项目
http://www.dom4j.org/dom4j-1.6.1/

Java代码
  1. package com.test.action.xml;   
  2.   
  3. import java.io.PrintWriter;   
  4. import javax.servlet.http.HttpServletResponse;   
  5. import org.apache.struts2.ServletActionContext;   
  6. import org.dom4j.*;   
  7. import org.dom4j.io.OutputFormat;   
  8. import org.dom4j.io.XMLWriter;   
  9. import com.opensymphony.xwork2.ActionSupport;   
  10. public class GetXmlAction extends ActionSupport {   
  11.     private String name;   
  12.     public String getName() {   
  13.         return name;   
  14.     }   
  15.     public void setName(String name) {   
  16.         this.name = name;   
  17.     }   
  18.     @Override  
  19.     public String execute() throws Exception {   
  20.         //zhangsan   
  21.         Person person1 = new Person();   
  22.         person1.setId(1);   
  23.         person1.setName("zhangsan");   
  24.         person1.setAge(20);   
  25.         person1.setAddress("shanghai");   
  26.            
  27.         //lisi   
  28.         Person person2 = new Person();   
  29.         person2.setId(2);   
  30.         person2.setName("lisi");   
  31.         person2.setAge(30);   
  32.         person2.setAddress("tianjin");   
  33.            
  34.         //代表整个xml文档   
  35.         Document document = DocumentHelper.createDocument();    
  36.         //代表文档根元素   
  37.         Element rootElement = document.addElement("users");   
  38.         //增加一个注释   
  39.         rootElement.addComment("This is a comment!");          
  40.         //增加一个根元素下的一个user子元素   
  41.         Element userElement = rootElement.addElement("user");          
  42.         //增加一个user子元素的一个各个user属性子元素   
  43.         Element idElement = userElement.addElement("id");   
  44.         Element nameElement = userElement.addElement("name");   
  45.         Element ageElement = userElement.addElement("age");   
  46.         Element addressElement = userElement.addElement("address");   
  47.            
  48.         //文档节点赋值   
  49.         if("zhangsan".equals(this.name))   
  50.         {   
  51.             idElement.setText(person1.getId() + "");   
  52.             nameElement.setText(person1.getName());   
  53.             ageElement.setText(person1.getAge() + "");   
  54.             addressElement.setText(person1.getAddress());   
  55.         }   
  56.         else  
  57.         {   
  58.             idElement.setText(person2.getId() + "");   
  59.             nameElement.setText(person2.getName());   
  60.             ageElement.setText(person2.getAge() + "");   
  61.             addressElement.setText(person2.getAddress());   
  62.         }   
  63.            
  64.         //获得客户端的相应的response对象   并设置向客户端输出的格式   
  65.         HttpServletResponse response = ServletActionContext.getResponse();   
  66.         response.setContentType("text/xml; charset=utf-8");//客户端的输入格式 和字体   
  67.         response.setHeader("Cache-Control""no-cache"); //取消浏览器缓存   
  68.            
  69.         //获取向客户端输出流   
  70.         PrintWriter out = response.getWriter();   
  71.            
  72.         //dom4j的输出格式   
  73.         OutputFormat format = OutputFormat.createPrettyPrint();   
  74.         format.setEncoding("utf-8");   
  75.            
  76.         XMLWriter writer = new XMLWriter(out, format);   
  77.         //把文档格式document写到输出流中out中  返回给客户端   
  78.         writer.write(document);        
  79.         out.flush();   
  80.         out.close();           
  81.         return null;   
  82.        
  83.     }   
  84. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值