加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax请求Struts2返回xml数据方法

发布时间:2020-12-16 00:19:20 所属栏目:百科 来源:网络整理
导读:Jquery 发送ajax请求,action 或servlet 处理请求,并以xml格式返回数据,交给jquery 处理。 1.jquery 发送请求: Js代码 em var provinceurl= "/Struts2/jquery/selectProvince.action" ; $.ajax({ url:provinceurl, type: 'POST' ,250)"> dataType: '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);//前台页面取得数据

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>//数据先传递到页面

  • >
  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读