struts+ajax问题

初学AJAX,使用struts+ajax小小尝试一下,出现下面这个问题clearList()执行到
var   thandler=document.forms[0].handlerID;
就不执行,请大家帮忙啊;

代码如下
HTML code
   
   
< script language ="JavaScript" > var XMLHttpReq = false ; // 创建XMLHttpRequest对象 function createXMLHttpRequest(){ if (window.XMLHttpRequest){ // Mozilla浏览器 XMLHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject){ // IE浏览器 try { XMLHttpReq = new ActiveXObject( " Msxml2.XMLHTTP " ); } catch (e){ try { XMLHttpReq = new ActiveXObject( " Microsoft.XMLHTTP " ); } catch (e){} } } } // 发送请求函数 function sendRequest(url){ alert( " 执行到发送 " ); createXMLHttpRequest(); // 调用创建对象方法 XMLHttpReq.open( " get " ,url, true ); XMLHttpReq.onreadystatechange = processResponse; // 指定响应函数 调用 XMLHttpReq.send( null ); // 发送请求 alert( " 发送完毕 " ); } // 处理返回信息函数 function processResponse(){ alert( " 执行到处理 " ); if (XMLHttpReq.readyState == 4 ){ // 代表服务器已经传回所有的信息,可以处理了 if (XMLHttpReq.status == 200 ){ // 信息已经成功返回,开始处理信息 updateList(); } else // 页面不正常 window.alert( " 您所请求的页面有异常。 " ); } alert( " 处理完毕 " ); } function refreshList(){ alert( " 执行到刷新 " ); var nodeid = document.forms[ 0 ].nodeID.value; var node = document.forms[ 0 ].nodeID; alert(node); var url = " ajax.do?method=showHandler&nodename= " + nodeid; alert(url); sendRequest(url); alert( " 刷新完毕 " ); } function updateList(){ alert( " 执行到更新 " ); clearList(); // 清除列表框中列表项函数 var handlers = document.forms[ 0 ].handlerID; alert( " handlers: " + handlers); var results = XMLHttpReq.responseXML.getElementsByTagName( " handlers " ); var option = null ; for ( var i = 0 ;i < results.length;i ++ ){ var name = results[i].firstChild[ 0 ].nodeValue; alert( " Name " + name); var id = results[i].firstChild[ 1 ].nodeValue; alert( " value " + value); option = new Option(name,id); handlers.options[i] = option; } alert( " 更新完毕 " ); } function clearList(){ alert( " 执行删除 " ); var thandler = document.forms[ 0 ].handlerID; alert( " handler " + handler); // handler.options.length=0; var num = thandler.options.length; num = 0 ; alert( " 不是空num: " + num); // var kids =handler.options; /* 从后向前删除,从第一个开始删除将引起错误 */ /* for(var i=num-1;i>=0;i--){ handler.removeChild(kids[i]); } */ alert( " 删除完毕 " ); } </ script > < body > < h1 > &#25805;&#20316;&#21592;&#31649;&#29702; </ h1 > < html:form action ="handlerManager.jsp" onsubmit ="confirm('确定执行此操作?')" > < table > < tr > < th > 操作员管理 </ th > </ tr > < tr > < td > 网点名称 </ td > < td > < html:select property ="nodeID" onchange ="refreshList();" > < html:optionsCollection property ="nodes" label ="nodeName" value ="id" /> </ html:select > </ td > </ tr > < tr > < td > 操作员姓名 </ td > < td > < html:select property ="handlerID" > </ html:select > </ td > </ tr > < tr > < td > 操作员密码: </ td > < td > < html:text property ="handlerPassword" ></ html:text > </ td > </ tr > < tr > < td > 操作员权限 </ td > < td > < html:select property ="group" > < html:option value ="1" > 操作员 </ html:option > < html:option value ="2" > 管理员 </ html:option > </ html:select > </ td > </ tr > < tr > < td > < html:submit property ="edit" > 删除 </ html:submit > < html:submit property ="edit" > 修改 </ html:submit > < html:submit property ="edit" > 禁用 </ html:submit > </ td > < td > < html:submit property ="edit" > 启用 </ html:submit > < html:submit property ="edit" > 取消 </ html:submit > < html:button property ="" > 退出 </ html:button > </ td > </ tr > </ table > </ html:form >


我的action代码如下:
Java code
   
   
public class AjaxAction extends DispatchAction { /* * Generated Methods */ /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward showHandler(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println( " 执行了AJAX " ); try { request.setCharacterEncoding( " GBK " ); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.setContentType( " text/xml;charset=GBK " ); response.setHeader( " Cache-Control " , " no-cache " ); PrintWriter out = null ; try { out = response.getWriter(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.println( " <?xml version=/"1.0/" encoding=/"GBK/"?> " ); out.println( " <handlers> " ); int nodeID = Integer.parseInt(request.getParameter( " nodename " )); HandlerBR handlerbr = new HandlerBR(); List list = handlerbr.getHandlerByNode(nodeID); for ( int i = 0 ;i < list.size();i ++ ) { Handler handler = (Handler)list.get(i); out.println( " <name> " + handler.getHandlerName() + " </name> " ); out.println( " <value> " + handler.getHandlerId() + " </value> " ); } out.println( " </handlers> " ); out.close(); return null ; } }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值