`

Jquery ajax请求Struts2 action 返回xml数据

阅读更多

Jquery 发送ajax请求,action 或servlet 处理请求,并以xml格式返回数据,交给jquery 处理。

1.jquery 发送请求:

 

var provinceurl="/Struts2/jquery/selectProvince.action";
 $.ajax({
      url:provinceurl,    
       type: 'POST', 
       dataType: 'xml',
       data: {name:"lixueli"},                
       timeout: 1000,                           
       error: function(){                      
       alert('Error loading XML document'); 
       }, 
       success: function(xml){            
        alert(xml);
        $(xml).find("province").each(function(){                            
            var provinceId=$(this).children("provinceid").text();       
            var provinceName=$(this).children("provinceName").text();
            var tempOption = document.createElement("option"); 
       tempOption.value = provinceId;
       tempOption.innerHTML  = provinceName; 
       province.append(tempOption);
        });
      } 
  });

 

 

2.struts2 action 处理请求

  可以有两种方式返回数据

  (1)直接在action中输出

    

 public String selectProvince() throws  IOException {
    response.setContentType("text/xml;charset=utf-8"); //(1)一定要在(2)的前面,不然会乱码
    response.setCharacterEncoding("UTF-8"); //(2)
    response.setHeader("Cache-Control", "no-cache"); 
    PrintWriter out=response.getWriter();         //(3)一定要在(1)(2)的后面
    ProvinceDAO provinceDAO = new ProvinceDAO();
    List<Province> list = provinceDAO.getAllProvince();
   StringBuilder sb=new StringBuilder();
   sb.append("<?xml version='1.0' encoding='UTF-8'?><provinces>");//最外层节点唯一,不然报错
   for(Province p:list)
  {
    sb.append("<province>");
    sb.append("<provinceid>"+p.getProvinceId()+"</provinceid>");
    sb.append("<provinceName>"+p.getProvinceName()+"</provinceName>");
    sb.append("</province>");
  }
  sb.append("</provinces>");
  out.print(sb.toString());
  out.flush();
 out.close();
return null;
}
   

 

这种方法不用返回结果。

<struts>
  <include file="struts-default.xml"/>
  <package name="/jquery" extends="struts-default" namespace="/jquery">
  <action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
   </action>
 </package>
</struts>

 

 

 (2)把数据输出到页面

 request.setAttribute("provinces", list);//前台页面取得数据

 jsp页面代码:

<?xml version='1.0' encoding='UTF-8'?>//一定放在页面开始位置,否则会报解析错误
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.hyts.util.*,java.util.*"%>
 <%
    List<Province> provinces = (List<Province>)request.getAttribute("provinces");
 %>
<provinces>
<%
   for(Province p:provinces)
   {
%>
   <province>
     <provinceid><%=p.getProvinceId()%></provinceid>
     <provinceName><%=p.getProvinceName()%></provinceName>
   </province>
<%  
   }
%>
    
</provinces>

 

 

返回到页面的配置

struts.xml配置

<struts>
  <include file="struts-default.xml"/>
  <package name="/jquery" extends="struts-default" namespace="/jquery">
  <action name="selectProvince" class="com.hyts.business.action.xml.JqueryXmlAction" method="selectProvince">
     <result name="success">/jqueryxml/provinces.jsp</result>//数据先传递到页面
  </action>
 </package>
</struts>

 

 

 

分享到:
评论
2 楼 Jcson 2015-04-16  
好的...谢谢.
1 楼 s5sss 2012-09-22  
               

相关推荐

    jQuery ajax请求struts action实现异步刷新

    这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以...

    Struts2+Jquery实现ajax并返回json类型数据

    主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...

    最新Struts2+jq+ajax+json 学会总要4步‵‵超级简单,里面包含实例

    最新Struts2.3.8 + jquery + ajax + json 学会struts+jq+ajax+json只要4步‵‵经过作者的总结超级简单 1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar...

    Struts2入门教程。包括jquery集成等。入门必看

    4.2 struts2框架实现数据校验.....................................................................................................................34 第 5章 国际化实现......................................

    当当网全套源码(附带邮箱验证功能)

    Struts2,JDBC(连接池),jQuery,Ajax 2)设计思想 MVC和分层设计思想 a.显示层:JSP组件(jQuery,Ajax) b.控制层:Struts2控制器组件、Action组件 c.业务层:Bean组件 d.数据访问层:DAO组件(JDBC) 4.数据库...

    dangdang和smartstruts2.rar

    Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...

    java命名规范 开发规范

    2. Action类相应方法使用封装好的HttpClient相关工具类,准备好HTTP请求的相关参数header参数和body参数并以xml的方式提交HTTP请求; 3. 解析该HTTP请求返回值(XML或JSON); 4. 响应结果; 5. 测试; 备注: 开发...

    达内java培训目录

    Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...

    当当网电商系统全套源码亲测通过(附带邮箱验证功能)

    struts2,JDBC(连接池),jQuery,Ajax 2)设计思想 MVC和分层设计思想 .... 4.数据库设计 1)dangdang数据库导入 2)数据表功能 a.d_user(用户信息表) 存储了用户信息,涉及登录和注册功能) ..... 5. 搭建工程...

    网上商城需求报告

    Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...

    在JavaScript的jQuery库中操作AJAX的方法讲解

    Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进行一些简单配置就可以实现;...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    java面试题

    72.5. Struts 2框架的大致处理流程如下: 68 72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

Global site tag (gtag.js) - Google Analytics