我有两个jsp页面,index.jsp和Result.jsp。在index.jsp中,我有一个文本框和一个Div。当用户在文本框中写入内容时,带有当前日期的文本应显示在Div中。在文本框的keyup事件中,我向Result.jsp发送Ajax请求。使用responseText方法一切正常。但是,当我从服务器发送xml并尝试使用responseXML方法时,不能使用以下Result.jsp -
<%@ page import="java.util.Date"%>
<%
response.setContentType("text/xml");
Date now = new Date();
StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
String name = request.getParameter("name");
sb.append("<data>");
sb.append(name + " / " + now);
sb.append("</data>");
sb.append("</root>");
out.print(sb);
%>
在这种情况下,responseXML返回null。
但是它使用了以下Result.jsp -
<%
response.setContentType("text/xml");
java.util.Date now = new java.util.Date();
StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
String name = request.getParameter("name");
sb.append("<data>");
sb.append(name + " / " + now);
sb.append("</data>");
sb.append("</root>");
out.print(sb);
%>
在以前的情况下,我无法理解&lt;%@ page import =“java.util.Date”%&gt; 的问题。
答案 0 :(得分:0)
尝试使用Fiddler或Firebug,然后检查请求的响应。 或者也许比较responseText和responseXML的值。如果内容类型正确,请检查响应标头。
答案 1 :(得分:0)
您是否收到第一个版本的错误消息(检查日志)?如果是,请发布。
我对JSP并不熟悉,但我猜到最后缺少的空间
Date"%> vs Date" %>
没关系。
您是否尝试导入整个软件包而不是特定类?
<%@ page import="java.util.*" %>
您是否尝试直接使用浏览器调用Result.jsp
?它是否返回第二个版本的xml片段而不是第一个版本?
答案 2 :(得分:0)
大。做到了。在xml的开头有一个新的行字符。在将xml写入其中之前我已经清除了对象并且它有效。
<%@ page import="java.util.Date"%>
<%
response.setContentType("text/xml");
Date now = new Date();
StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
String name = request.getParameter("name");
sb.append("<data>");
sb.append(name + " / " + now);
sb.append("</data>");
sb.append("</root>");
out.clear();
out.print(sb);
%>