您的位置:首页 > Web前端 > JQuery

Jquery 发送ajax请求,action xml…

2013-09-11 16:05 537 查看
zzz

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

1.jquery 发送请求:

<EM>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_x("option");


tempOption.value = provinceId;


tempOption.innerHTML = provinceName;


province.append(tempOption);


});


}

});</EM>

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;

}

这种方法不用返回结果。

<STRONG><EM><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></EM></STRONG>

(2)把数据输出到页面

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

jsp页面代码:

<STRONG><EM><?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></EM></STRONG>

返回到页面的配置

struts.xml配置

<STRONG><EM><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></EM></STRONG>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: