Jquery 发送ajax请求,action 或servlet 处理请求,并以xml格式返回数据,交给jquery 处理。
1.jquery 发送请求:
- <em>varprovinceurl="/Struts2/jquery/selectProvince.action";
- $.ajax({
- url:provinceurl,
- type:'POST',250)"> dataType:'xml',250)"> data:{name:"lixueli"},250)"> timeout:1000,250)"> error:function(){
- alert('ErrorloadingXMLdocument');
- },250)"> success:function(xml){
- alert(xml);
- $(xml).find("province").each( varprovinceId=$(this).children("provinceid").text();
- varprovinceName=$(this).children("provinceName").text();
- vartempOption=document.createElement("option");
- tempOption.value=provinceId;
- tempOption.innerHTML=provinceName;
- province.append(tempOption);
- });
- }
- });</em>
2.struts2 action 处理请求
可以有两种方式返回数据
(1)直接在action中输出
publicStringselectProvince()throwsIOException{
- response.setContentType("text/xml;charset=utf-8");
- response.setCharacterEncoding("UTF-8");
- response.setHeader("Cache-Control","no-cache");
- PrintWriterout=response.getWriter();
- ProvinceDAOprovinceDAO=newProvinceDAO();
- List<Province>list=provinceDAO.getAllProvince();
- StringBuildersb=newStringBuilder();
- sb.append("<?xmlversion='1.0'encoding='UTF-8'?><provinces>");
- for(Provincep: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();
- returnnull;
- }
这种方法不用返回结果。
<strong>emstruts>
- includefile="struts-default.xml"/>
- 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页面代码:
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|