问题描述
我写了一个ajax用来做省市及联菜单我先是把省的值读到页面上来了,当下拉加列表值改变时就调用ajax代码如下/**创建一个ajax进行及联菜单的异步调用*showCity()显示省份/市区显示行业/和求职职业*///创建httpRequestvarcreateAjaxObj=function(){varhttpRequest=false;if(window.XMLHttpRequest){//如果为Mozilla,Safari等浏览器httpRequest=newXMLHttpRequest();if(httpRequest.overrideMimeType){httpRequest.overrideMimeType('text/xml');}}elseif(window.ActiveXObject){try{httpRequest=newActiveXObject("Msxml2.XMLHTTP");}catch(e){try{httpRequest=newActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}returnhttpRequest;};varsendReq=newcreateAjaxObj();functionshowCity(val){varprovince_id=val;varcontentType="application/x-www-form-urlencoded;charset=utf-8";sendReq.open("post","select.do?method=showCity",true);//发送至select.dosendReq.setRequestHeader("Content-Type",contentType);//sendReq.onreadystatechange=sendRequest;sendReq.send("&province_id="+province_id);}可以调用actionpublicActionForwardshowCity(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//TODOAuto-generatedmethodstubBaseServiceImplselectProvince=newBaseServiceImpl();intpriovince_id=Integer.parseInt(request.getParameter("province_id"));//接收从页面传来的省份的IDAreapriovince=newArea();//实例化一个持久化Area的类priovince.setArea_id(priovince_id);Listlist2=(List)selectProvince.getCity(priovince);//返回市的列表if(list2.size()>0){request.setAttribute("cityList",list2);returnmapping.findForward("ok");}else{request.setAttribute("msg","没有找到城市的记录");}returnmapping.findForward("ok");}我想把读出的数据放在一个list里在通过“OK”时转发到addResume.jsp在addResume.jsp页面接收cityListaddResume.jsp代码如下:<!--循环显示城市记录--><selectname="city"><optionvalue="0">请选择城市</option><c:forEachvar="city"items="${cityList}"><optionvalue="${city.area_id}">${city.area_name}</option></c:forEach></select><br>可是就是经ajax调用action页面时转发到addResume.jsp时就是接收不到cityList对像的值应该怎么做呢?各位大哥帮帮小弟啊
解决方案
解决方案二:
那是肯定的,你只能在action中返回串,因为你js的话也只能处理那些串或者xml文件你可以遍历list手动的拼写html---》比如说:StringBufferstr=newStringBuffer();str.append("<select>");for(inti=0;i<list.size();i++){Shishi=(Shi)list.get(i);str.append("<optionvalue='"+shi.getName+"'>"+shi.getName+"</option>");}str.append("</select>");returnstr.toString();
之后你可以再action中拿到PrintWriterout.print(str);大概是这样了·呵呵
解决方案三:
楼上说的很正确,你需要组装成xml格式是数据返回去,然后用dom去解析这个xml串
解决方案四:
那是ajax接收数据这边怎么写呢
解决方案五:
我做过.可以帮你.qq330765472给你源码!
解决方案六:
每天一贴好轻松!!!!
解决方案七:
你再试试