如何使用ajax将XML转换为HTML下拉列表?我使用GET方法发送参数,但是生成XML的JSP文件没有收到它。
var url = "responsexml.jsp";
url = url + "?projectCode=" + prj.options[prj.selectedIndex].value;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
然后在responsexml.jsp中我喜欢这样:
<%
String projectcode = (String) request.getParameter("projectCode");
System.out.println("++++projectCode:=" + projectcode);
Session s = null;
Transaction tx;
try {
s = HibernateUtil.currentSession();
tx = s.beginTransaction();
Query query = s.createQuery("SELECT from Wa wa where wa.ProjectCode='" + projectcode + "'");
response.setContentType("text/xml");
PrintWriter output = response.getWriter();
output.write( "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
//response.setHeader("Cache-Control", "no-cache");
if (projectcode != null) {
for (Iterator it = query.iterate(); it.hasNext();) {
if (it.hasNext()) {
Wa object = (Wa) it.next();
//out.print( "<item id=\"" + object.getIdWA() + "\" name=\"" + object.getWAName() + "\" />");
output.write("<wa>");
output.write( "<item id=\"" + object.getIdWA() + "\" name=\"" + object.getWAName() + "\" />");
output.write("</wa>");
}
}
}
} catch (HibernateException e) {
e.printStackTrace();
}
%>
</body>
</html>
使用此代码我没有我的XML文件。我收到了这个错误:
服务器不理解请求,或者请求无效。 Erreur de traitement de la ressource http://www.w3.o ...
答案 0 :(得分:1)
确定:整个 JSP文件是什么?错误消息表明您在其顶部有一个<!DOCTYPE>
,指向w3.org上的DTD,但有问题的webbrowser无法加载它。该错误消息还表明您正在使用IE来测试这一切,这个Web浏览器对于从http://localhost
打开XML文件有着奇怪的限制和怪癖。尝试使用更合适的webbrowser,例如Firefox。
此外,我发现了这种方法的几个缺陷:
</body></html>
实际上并不属于JSP的底层。删除它们。if (it.hasNext())
件是多余的,因为它已由for
声明处理。<wa>
元素。不是真正的问题,但更多的建议,我建议看看jQuery来解决ajaxical请求并以漂亮,简洁和交叉浏览器兼容的方式进行DOM操作。