ajax请求Struts2返回xml数据方法

前端之家收集整理的这篇文章主要介绍了ajax请求Struts2返回xml数据方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

1.jquery 发送请求:

Js代码
  1. <em>varprovinceurl="/Struts2/jquery/selectProvince.action";
  2. $.ajax({
  3. url:provinceurl,
  4. type:'POST',250)"> dataType:'xml',250)"> data:{name:"lixueli"},250)"> timeout:1000,250)"> error:function(){
  5. alert('ErrorloadingXMLdocument');
  6. },250)"> success:function(xml){
  7. alert(xml);
  8. $(xml).find("province").each( varprovinceId=$(this).children("provinceid").text();
  9. varprovinceName=$(this).children("provinceName").text();
  10. vartempOption=document.createElement("option");
  11. tempOption.value=provinceId;
  12. tempOption.innerHTML=provinceName;
  13. province.append(tempOption);
  14. });
  15. }
  16. });</em>

2.struts2 action 处理请求

可以有两种方式返回数据

(1)直接在action中输出

Java代码
    publicStringselectProvince()throwsIOException{
  1. response.setContentType("text/xml;charset=utf-8");//(1)一定要在(2)的前面,不然会乱码
  2. response.setCharacterEncoding("UTF-8");//(2)
  3. response.setHeader("Cache-Control","no-cache");
  4. PrintWriterout=response.getWriter();//(3)一定要在(1)(2)的后面
  5. ProvinceDAOprovinceDAO=newProvinceDAO();
  6. List<Province>list=provinceDAO.getAllProvince();
  7. StringBuildersb=newStringBuilder();
  8. sb.append("<?xmlversion='1.0'encoding='UTF-8'?><provinces>");//最外层节点唯一,不然报错
  9. for(Provincep:list)
  10. {
  11. sb.append("<province>");
  12. sb.append("<provinceid>"+p.getProvinceId()+"</provinceid>");
  13. sb.append("<provinceName>"+p.getProvinceName()+"</provinceName>");
  14. sb.append("</province>");
  15. sb.append("</provinces>");
  16. out.print(sb.toString());
  17. out.flush();
  18. out.close();
  19. returnnull;
  20. }

这种方法不用返回结果。

Xml代码
    <strong>emstruts>
  1. includefile="struts-default.xml"/>
  2. packagename="/jquery"extends="struts-default"namespace="/jquery"actionname="selectProvince"class="com.hyts.business.action.xml.JqueryXmlAction"method="selectProvince"</actionpackage>

(2)把数据输出页面

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

jsp页面代码

HTML代码 <?xmlversion='1.0'encoding='UTF-8'?>//一定放在页面开始位置,否则会报解析错误
  • <%@pagelanguage="java"contentType="text/xml;charset=UTF-8"pageEncoding="UTF-8"%<%@pageimport="com.hyts.util.*,java.util.*"%<%
  • ListProvince>provinces=(List>)request.getAttribute("provinces");
  • %provinces for(Provincep:provinces)
  • provinceprovinceid<%=p.getProvinceId()%provinceName<%=p.getProvinceName()%
  • 返回到页面的配置

    struts.xml配置

    resultname="success">/jqueryxml/provinces.jspresult>//数据先传递到页面

  • >
  • 原文链接:https://www.f2er.com/ajax/164277.html

    猜你在找的Ajax相关文章