【Struts2】7.异步提交响应xml和json

来源:互联网 发布:mac 磁盘恢复 编辑:程序博客网 时间:2024/06/06 03:12
1.返回为XML信息的异步交互
jsp页面
<%@ 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>    <script type="text/javascript" src="scripts/jquery-1.4.4.js"></script>    <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">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='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>age</th><th>address</th><tr align='center'><td>" + id + "</td><td>" + name + "</td><td>" + age + "</td><td>" + address + "</td></tr></table>";$("#theBody table:eq(0)").remove();$("#theBody").append(html);});}</script>  </head>  <body id="theBody">   <select id="name"><option value="zhangsan">zhangsan</option><option value="lisi">lisi</option>   </select>      <input type="button" value="get information" onclick="getInfo();"></html>
配置文件
    定义对应的Action,不指定result

Action:
public class GetXMLAction extends ActionSupport{private String name;public String getName(){return name;}public void setName(String name){this.name = name;}@Overridepublic String execute() throws Exception{        //注明此处People为一个pojo类//zhang sanPeople people1 = new People();people1.setId(1);people1.setName("zhangsan");people1.setAge(30);people1.setAddress("beijing");People people2 = new People();people2.setId(2);people2.setName("lisi");people2.setAge(50);people2.setAddress("tianjin");        //构造XML,通过dom4jDocument document = DocumentHelper.createDocument();Element rootElement = document.addElement("persons");rootElement.addComment("This is comment!!");Element e = rootElement.addElement("person");Element idElement = e.addElement("id");Element nameElement = e.addElement("name");Element ageElement = e.addElement("age");Element addressElement = e.addElement("address");if("zhangsan".equals(name)) {idElement.setText(people1.getId() + "");nameElement.setText(people1.getName());ageElement.setText(people1.getAge() + "");addressElement.setText(people1.getAddress());}else {idElement.setText(people2.getId() + "");nameElement.setText(people2.getName());ageElement.setText(people2.getAge() + "");addressElement.setText(people2.getAddress());}HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("text/xml; charset=utf-8");response.setHeader("cache-control", "no-cache"); PrintWriter out = response.getWriter();//格式化xmlOutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("utf-8");XMLWriter writer = new XMLWriter(out, format);writer.write(document);out.flush();out.close();return null;}}

2.返回为JSON信息的异步交互
1)与xml的方式类似;
Gson gson = new Gson();String result = gson.toJson(people);HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("application/json; charset=utf-8");response.setHeader("cache-control", "no-cache"); PrintWriter out = response.getWriter();out.print(result);out.flush();out.close();
2)struts2关于json的插件
a.加入插件
b.配置文件的结果result中type=“json”











原创粉丝点击