struts2实现异步调用(xml与json)

来源:互联网 发布:北电网络 3903 编辑:程序博客网 时间:2024/05/22 10:41

处理xml

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'getXML.jsp' starting page</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"><script type = "text/javascript" src = "jquery.js"></script><script type = "text/javascript">function getInfo () {$.post("getXMLAction.action",{name:$("#name").val()},function (returnedData,status){<!-- -->  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 = '50%' border = '1'><thead><tr><td>id</td><td>name</td><td>age</td><td>address</td></tr></thead><tbody><tr><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+address+"</td></tr></tbody></table>";                      $("#content table:eq(0)").remove();                      $("#content").append($(html));  <!-- -->});}</script>  </head>    <body>    <select id = "name" name = "name">    <option value = "zhangsan">zhangsan</option>    <option value = "lisi">lisi</option>    </select>    <input type = "button" value = "get information" onclick = "getInfo();">    <div id = "content">        </div>  </body></html>


package com.zhangshi.action.xml;public class People {private int id;private String name;private int age;private String address;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;}
package com.zhangshi.action.xml;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import javax.swing.Action;import org.apache.struts2.ServletActionContext;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class GetXMLAction extends ActionSupport {public String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String execute() throws Exception {//zhang sanPeople people1 = new People ();people1.setId(1);people1.setName("zhangsan");people1.setAge(30);people1.setAddress("beijing");//lisiPeople people2 = new People();people2.setId(2);people2.setName("lisi");people2.setAge(34);people2.setAddress("shanghai");Document document = DocumentHelper.createDocument();Element root = document.addElement("persons");root.addComment("This is comment!");Element person = root.addElement("person");Element idElement = person.addElement("id");Element nameElement = person.addElement("name");Element ageElement = person.addElement("age");Element addressElement = person.addElement("address");if ("zhangsan".equals(name)) {idElement.setText(people1.getId()+"");nameElement.setText(people1.getName());ageElement.setText(people1.getAddress()+"");addressElement.setText(people1.getAddress());}else {idElement.setText(people2.getId()+"");nameElement.setText(people2.getName());ageElement.setText(people2.getAddress()+"");addressElement.setText(people2.getAddress());}HttpServletResponse resp = ServletActionContext.getResponse(); resp.setContentType("text/xml;charset=utf-8");           resp.setHeader("praga", "no-cache");           resp.setHeader("cache-control", "no-cache");          PrintWriter out = resp.getWriter();         OutputFormat format = OutputFormat.createCompactFormat();         XMLWriter wml = new XMLWriter (out,format);         wml.write(document);         wml.close();         out.flush();         out.close();return null;}}

public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"    "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts><package name = "sss" extends="struts-default" namespace="/"><action name = "getXMLAction" class = "com.zhangshi.action.xml.GetXMLAction"><!-- 不配置result --></action></package></struts>



json:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>            <title>My JSP 'json2.jsp' starting page</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"><script type = "text/javascript" src="jquery.js"></script><script type = "text/javascript">$(document).ready (function () {$("input:eq(0)").click (function () {$.post("jsonAction.action",{name:$("#name").val()},function (returnedData,status){var html = "<table border = '1' width = '40%'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr>";var people = returnedData;var id = people.id;var name = people.name;var age = people.age;var address = people.address;html+="<tr align = 'center'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+address+"</td></tr>"html+="</table>";$("#content table").remove();$("#content").html(html);},"json");});});</script>  </head>    <body>    <input type = "button" value = "get the data of json from the server" />    <div id = "content">        </div>  </body></html>

package com.zhangshi.action.xml;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.google.gson.Gson;import com.opensymphony.xwork2.ActionSupport;public class GetJsonAction extends ActionSupport {private String name;public String execute () throws Exception{People people1 = new People ();people1.setId(1);people1.setName("zhangsan");people1.setAge(30);people1.setAddress("beijing");Gson gson = new Gson ();String result = gson.toJson(people1);HttpServletResponse resp = ServletActionContext.getResponse(); resp.setContentType("application/json;charset=utf-8");           resp.setHeader("praga", "no-cache");           resp.setHeader("cache-control", "no-cache");          PrintWriter out = resp.getWriter();         out.println(result);         System.out.println(result);         out.close();return null;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

<action name = "jsonAction" class = "com.zhangshi.action.xml.GetJsonAction"></action>
不要忘记important!!!
 resp.setContentType("application/json;charset=utf-8");           resp.setHeader("praga", "no-cache");           resp.setHeader("cache-control", "no-cache");
struts-plugin.xml
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>            <title>My JSP 'json2.jsp' starting page</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"><script type = "text/javascript" src="jquery.js"></script><script type = "text/javascript">$(document).ready (function () {$("input:eq(0)").click (function () {$.post("getJsonAction2.action",{name:$("#name").val()},function (returnedData,status){var html = "<table border = '1' width = '40%'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr>";var people = returnedData;var id = people.id;var name = people.name;var age = people.age;var address = people.address;html+="<tr align = 'center'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+address+"</td></tr>"html+="</table>";$("#content table").remove();$("#content").html(html);},"json");});});</script>  </head>    <body>      <input type = "button" value = "get the data of json from the server" />    <input type = "text" id = "name" />    <div id = "content">        </div>  </body></html>

package com.zhangshi.action.xml;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionSupport;public class GetJsonAction2 extends ActionSupport{private int id;private String name;private int age;private String address;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;}@Overridepublic String execute() throws Exception {this.id = 1;this.age = 30;this.address = "yancheng";return Action.SUCCESS;}}

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"    "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts><package name = "sss" extends="json-default" namespace="/"><action name = "getJsonAction2" class = "com.zhangshi.action.xml.GetJsonAction2"><result name = "success" type = "json">/json.jsp</result></action></package></struts>


	
				
		
原创粉丝点击