阿贾克斯& Java:从servlet到jsp的xml响应 [英] Ajax & Java : xml responce from servlet to jsp

查看:165
本文介绍了阿贾克斯& Java:从servlet到jsp的xml响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,亲爱的朋友,

我正在使用以下Ajax调用来检查数据库中是否有特定员工:
< input type ="text" id ="txtEmpCode" name ="txtEmpCode" onblur ="isEmpCodeExists(this);" />

我用于Ajax调用的Javascript函数如下:

Hello Dear Friends,

I am using following Ajax Call to check whether particular employee is available in database or not:
<input type="text" id="txtEmpCode" name="txtEmpCode" onblur="isEmpCodeExists(this);" />

And my Javascript functions for Ajax call are as follows:

function isEmpCodeExists(obj)
{
  var val = obj.value;
  if(val != "") {
    hdnObj.value = val;
    var url="MyServlet?value=" + encodeURIComponent(val);		
    if (typeof XMLHttpRequest != "undefined") {
      req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    }
		
    req.open("GET", url, true);
    req.onreadystatechange = callbackIsTransCodeExists;
    req.send(null);
  }
}

function callbackIsTransCodeExists() {
	var ind_ele = document.getElementById(ind);
	ind_ele.style.display = "none";	
	if (req.readyState == 4) {		
		if (req.status == 200) {			
			parseMessageIsTransCodeExists();
	   	}
	} else {
		ind_ele.style.display = "";
	}
}

function parseMessageIsTransCodeExists() {	
	var message = req.responseXML.getElementsByTagName("message")[0];
	var m = message.childNodes[0].nodeValue;
	
      //  ..........
}


现在遵循我的Servlet doGet()方法:


Now Following my Servlet doGet() method:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  String transCode = request.getParameter("value");

  .......				

  response.setContentType("text/xml");
  response.setHeader("Cache-Control", "no-cache");
  response.getWriter().write("<message>true</message>");
}


它可以很好地使用一个值为"true"或"false"的值.
现在,如果我使用
response.getWriter().write("<empcode>true</empcode>");
在servlet和
var message = req.responseXML.getElementsByTagName("empcode")[0];
在javascript中,我的消息"将获得null值.

当我通过as-
传递多个值时,也会发生这种情况


It works fine with one value ''true'' or ''false''.
Now if I uses
response.getWriter().write("<empcode>true</empcode>");
in servlet and
var message = req.responseXML.getElementsByTagName("empcode")[0];
in javascript my "message" will get null values.

It also happens when I pass multiple values as-

response.getWriter().write("<message><val1>val1</val1><val2>val2</val2></message>");


来自servlet.

因为我想使用Ajax调用从数据库传递多个记录,所以请给我解决方案吗?

请回复...:)


from servlet.

Can you please give me the solution for it as I want to pass multiple records from database using Ajax call?

Please kindly reply... :)

推荐答案

如果您正在Internet Explorer中进行测试,则说明存在缓存问题,例如,此处 [此处 [
If you''re testing in Internet Explorer, then there is a caching problem as described, for example, here[^] and here[^]. This may be what is causing your problem.


这篇关于阿贾克斯&amp; Java:从servlet到jsp的xml响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆