视频介绍struts2+jQuery+xml之间的信息交互

版权:JavaIT学习室
作者:刘阳
转载此文章,请标明:http://www.javait.org

为大家介绍一下struts2+jQuery+xml之间的信息交互。最主要明白jQuery如何解析xml格式的数据,struts2如何返回xml文件。

1、struts2返回xml文件,我们可以利用response.setContentType(“text/xml”)这种形式来返回一个xml文件。这个原理和Servlet返回xml文件一样。但是如要注意一点,业务方法必须返回一个null

创建一个struts2的XMLAction源代码
package com.gxa.edu.action;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.http.HttpServletResponse;
 
import org.apache.struts2.ServletActionContext;
 
/**
 * 利用Struts2的Action返回XML文件
 * @author 刘阳
 * @version www.javait.org
 */
public class XMLAction {
 
	/**
	 * 处理业务逻辑的方法返回一个NULL字符串
	 * @return
	 * @throws IOException 
	 */
	public String method_1() throws IOException {
		String str = "<student>";
		str += "<sno>s001</sno>";
		str += "<sname>张三</sname>";
		str += "<ssex>男</ssex>";
		str += "<sage>23</sage>";
		str += "</student>";
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/xml");
		PrintWriter out = response.getWriter();
		out.println(str);
		return null;
	}
}


配置文件信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
	<package name="basic" extends="struts-default" namespace="/basic">
		<action name="xml" class="com.gxa.edu.action.XMLAction" method="method_1">
		</action>
	</package>
</struts>


2、jsp页面中的jQuery解析xml格式数据,利用jQuery中的find()、children()来解析xml格式的数据
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
 
    <title>Struts2返回xml格式数据之一</title>
 
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript" src="/hos-1/js/jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
		$(function() {
			$("#btn1").click(function () {
				$("#res").empty(); //清空div下面的所有元素
				var v = $("#sname").val();
				$.get("/hos-1/basic/xml.action",{param:v},function(data,textStatus) {
					var str = "<table border=\"1\">";
					str += "<tr>";
					str += "<td>学号</td>";
					str += "<td>姓名</td>";
					str += "<td>年龄</td>";
					str += "<td>性别</td>";
					str += "</tr>";
					$(data).find("student").each(function(i) { //find()方法是查找所匹配的后代元素
						var sno = $(this).children("sno").text(); //children取出元素集合中每一个元素的所有子元素的元素
						var sname = $(this).children("sname").text();
						var sage = $(this).children("sage").text();
						var ssex = $(this).children("ssex").text();
						str += "<tr>";
						str += "<td>"+ sno +"</td>";
						str += "<td>"+ sname +"</td>";
						str += "<td>"+ sage +"</td>";
						str += "<td>"+ ssex +"</td>";
						str += "</tr>";
					});
					str += "</table>";
					$("#res").append(str);
				});
			});
		});
	</script>
 
  </head>
 
  <body>
    <h2>jQuery中Get方法应用</h2>
    <input type="text" id="sname"><input type="button" value="查询" id="btn1">
    <div id="res"></div>
  </body>
</html>


参考视频:


可能你还喜欢的文章:
1、 如何解决Struts2 if标签比较字符串的问题

转载此文章,请标明:http://www.javait.org

你可能感兴趣的:(struts2)