jspはxmlに情報を入れる方法を実現する
3294 ワード
この例では、jsp実装がxmlに情報を格納する方法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
一、jspコード:
二、ajaxコード作成サーバー要求コードは書く必要はありません.onchange時のイベントjsSubmitを書きましょう.
三、servlet
四、ajaxのコールバック関数
本文で述べたことは皆さんのjspプログラム設計に役立つことを望んでいます.
一、jspコード:
:
:
二、ajaxコード作成サーバー要求コードは書く必要はありません.onchange時のイベントjsSubmitを書きましょう.
function jsSubmit() {
createXMLHttpRequest();
var province = document.getElementById("province");
//
var uri = "AjaxAction?value=" + encodeURI(encodeURI(province.value));
xmlHttp.open("POST", uri, true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;")
xmlHttp.onreadystatechange = processResponse;// !
xmlHttp.send(null);
}
三、servlet
public class AjaxAction extends HttpServlet {
private static final long serialVersionUID = 1L;
private static Map map = new HashMap();
static {
String[] cities1 = { " ", " ", " " };
String[] cities2 = { " ", " ", " ", " " };
String[] cities3 = { " " };
map.put(" ", cities3);
map.put(" ", cities2);
map.put(" ", cities1);
}
st {
String province = request.getParameter("value");//
String proviceCN = URLDecoder.decode(province, "UTF-8");
String[] cities = map.get(proviceCN);// , map
response.setContentType("text/xml; charset=UTF-8");
StringBuffer buff=new StringBuffer("");/// ......
for (String city : cities)
{
buff.append("").append(city) .append(" ");
}
buff.append(" ");
response.getWriter().println(buff.toString());
四、ajaxのコールバック関数
function processResponse() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
var cities = xmlHttp.responseXML.getElementsByTagName("city");
var displaySelect = document.getElementById("city");
displaySelect.innerHTML = null;
for (var i= 0 ;i < cities.length ; i++){
if (i == 0) {
var a= xmlHttp.responseXML.getElementsByTagName("city")[i].firstChild.data;// firstChild , text ~
var op = new Option(a, a, true, true);
} else {
var a= xmlHttp.responseXML.getElementsByTagName("city")[i].firstChild.data;
var op = new Option(a, a);
alert(a);
}
displaySelect.options[i] = op;
}
} else {
window.alert(" ");
}
}
}
本文で述べたことは皆さんのjspプログラム設計に役立つことを望んでいます.