读书人

【100分】ajax在jsp页面接受不到数据解

发布时间: 2012-03-19 22:03:05 作者: rapoo

【100分】ajax在jsp页面接受不到数据
大家帮我看看是哪的问题啊 ,我刚接触ajax
-------jsp页面--------
var xmlHttp;
function createXMLHttpRequest()
{
if(window.XMLHttpRequest){
  xmlHttp = new XMLHttpRequest();
 if(xmlHttp.overrideMimeType){
   xmlHttp.overrideMimeType('text/xml');
  }
}else if(window.ActiveXObject){
  try{
   xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){
   try{
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}catch(e){

}
   }
}
if (!xmlHttp)
{
   window.alert("不能创建XMLHttpRequest对象实例.");
  return false;
}
}

function getCheckData(name,value){
if(name=="kdid"){
createXMLHttpRequest();
var url="../xtgl/itsDuanMianAction.do?method=returnDuanMianList&kdid="+value;
xmlHttp.open("post", url, false);
xmlHttp.setRequestHeader("Content-Type","text/xml;charset=GB2312") ;
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
}

function callback(){
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var sel_area=document.getElementById("sel_dmid");
var info="<select name='dmid' id='sel_dmid' length='50' style='width:140' onclick='getCheckData(this.name);'>";
var xml=xmlHttp.responseXML;
var nodesValue=xml.getElementsByTagName("value");
var nodesKey=xml.getElementsByTagName("key");
var size=nodesValue.length;
alert("---xml----- "+xml);
alert("-------size---- "+size);
if(size>0){
for(i=0;i<size;i++){
info+="<option value="+nodesValue[i].text+">"+nodesKey[i].text+"</option>";
}
}else{
info+="<option value=''>全部</option>";
}
info+="</select>";
sel_area.outerHTML=info;
}
}
}

-------类文件--------
public void returnDuanMianList (ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)throws IOException, ServletException
{
java.util.List list = null;
String kdid="";
ItsDuanmian itsduanmian;
httpServletResponse.setContentType("text/xml; charset=UTF-8");
httpServletResponse.setHeader("Cache-Control", "no-cache");
try
{ PrintWriter out = httpServletResponse.getWriter();
kdid=httpServletRequest.getParameter("kdid");
ItsDuanMianActionForm itsDuanMianActionForm = (ItsDuanMianActionForm)actionForm;
ArrayOfItsDuanmian lstDuanMian = new ArrayOfItsDuanmian();
SRV_itsClient client = new SRV_itsClient();
SRV_itsPortType service = client.getSRV_itsHttpPort();
lstDuanMian = service.getDuanMianList("E",kdid,1,100000);
list=lstDuanMian.getItsDuanmian();
for(int i=0;i<list.size();i++){
itsduanmian=new ItsDuanmian();
itsduanmian=(ItsDuanmian) list.get(i);
out.println("<value>"+itsduanmian.getId()+"</value>");
out.println("<key>"+itsduanmian.getMc().getValue()+"</key>");
}
}
catch(Exception ex)


{
logger.error(ex);
}
}

[解决办法]
能把JSP页面的也贴出来看看吗?
[解决办法]
onclick='getCheckData(this.name);'为什么这个是一个参数
getCheckData(name,value)这个是两个参数呢?
难道不是上面调用下面的那个的么?
[解决办法]

探讨
onclick='getCheckData(this.name);'为什么这个是一个参数
getCheckData(name,value)这个是两个参数呢?
难道不是上面调用下面的那个的么?

[解决办法]
Ajax的post传参方式好像不是你那样把
function getCheckData(name,value){
if(name=="kdid"){
createXMLHttpRequest();
var url="../xtgl/itsDuanMianAction.do?method=returnDuanMianList&kdid="+value;
xmlHttp.open("post", url, false);
xmlHttp.setRequestHeader("Content-Type","text/xml;charset=GB2312") ;
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
}
JScript code
function getCheckData(name,value){  if(name=="kdid"){   createXMLHttpRequest();var url="../xtgl/itsDuanMianAction.do?method=returnDuanMianList;xmlHttp.open("post", url, true); xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded") ;xmlHttp.onreadystatechange = callback;xmlHttp.send("kdid="+Value);     }   }
[解决办法]
这样你先把这里的out.println("<value>"+itsduanmian.getId()+"</value>");
out.println("<key>"+itsduanmian.getMc().getValue()+"</key>");改成固定的值,然后看alert弹出的值,如果有其他没有问题,那就是lstDuanMian = service.getDuanMianList("E",kdid,1,100000); 没有查到值


[解决办法]
要么就是用调试模式,自己一步步调。
要么就在java文件中每行加一条System.out.print,然后把后台结果贴出来让我们看。

还有,catch里 加一条 e.printStackTrace(); 看看是不是有异常。

读书人网 >Java Web开发

热点推荐