В странном сценарии ajax responseXML при наступлении нуля - PullRequest
0 голосов
/ 09 октября 2009

У меня есть две страницы jsp, index.jsp и Result.jsp. В index.jsp у меня есть текстовое поле и Div. Когда пользователь пишет что-то в текстовое поле, текст с текущей датой должен появиться в Div. При событии keyup текстового поля я отправляю Ajax-запрос в Result.jsp. С методом 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 возвращает ноль.

Но он работает со следующим 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);
%>

Я не могу понять, в чем проблема с <% @ page import = "java.util.Date"%> в предыдущем случае.

Ответы [ 3 ]

0 голосов
/ 09 октября 2009

Вы получаете сообщение об ошибке с первой версией (проверьте логи)? Если да, отправьте.

Я не очень знаком с JSP, но, думаю, в конце пропущено место

Date"%> vs Date" %>

не имеет значения.

Вы пытались импортировать весь пакет вместо определенного класса?

<%@ page import="java.util.*" %>

Вы пытались позвонить на Result.jsp напрямую через браузер? Возвращает ли фрагмент XML со второй версией, но не с первой?

0 голосов
/ 09 октября 2009

Отлично. Получил, что работал. В начале 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);
%>
0 голосов
/ 09 октября 2009

Попробуйте использовать Fiddler или Firebug, затем проверьте ответ на запрос. Или, возможно, сравнить значение responseText и responseXML. Проверьте также заголовки ответа, если тип содержимого правильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...