2012-04-10 5 views
0

У меня возникла проблема с пересылкой на страницу .jsp. Позвольте мне описать мою программу:RequestDispatcher .forward (req, res) в Servlet не имеет никакого эффекта

В сервлете я хотел бы что-то подтвердить, поэтому я сделал .forward() в .jsp, где я включил javascript с подтверждением в $ (document) .ready (function() ...

В случае, если выбрано OK Я создаю новый XMLHttpRequest() и устанавливаю параметр confirm = 1 и возвращаюсь к предыдущему сервлета, где выполняется блок кода, который должен быть выполнен после подтверждения (confirm = 1), как и ожидалось. последняя строка этого блока, который .forward обратно .jsp кажется, не имеет никакого влияния на все

Servlet код:.

if("1".equals(request.getParameter("confirm"))){ 
    ... 
    setting some request.setAttribute(); 
} 
else{ 
    ... 
} 

RequestDispatcher rd = request.getRequestDispatcher(...); 
rd.forward(req, res); 

На самом деле, я вижу правильную страницу, но это из-за подтверждения, я думаю. Вероятно, он был перезагружен, потому что я должен взять некоторые атрибуты из запроса и отобразить некоторые вещи с помощью jquery, в зависимости от этих значений атрибутов.

Как вы думаете, причина для .forward() не имеет эффекта? Могу ли я заставить страницу как-то перезагрузить?

РЕДАКТИРОВАТЬ: В первый раз выполняется сервлет-код (иначе регистр) .forward() работает нормально. Но в следующий раз он ничего не делает, независимо от того, на какой странице я пытаюсь перейти. Точно так же, как у меня не было бы переадресации вообще. Странный. Я действительно надеюсь, что у кого-то есть объяснение.

EDIT2: Это не проблема с переходом, я думаю. Если я использую system.out.print необходимых атрибутов, я получаю правильные значения. Но почему страница не перезагружается? Даже если я перейду к другому .jsp, я все еще вижу предыдущий.

+0

http://docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html#forward%28javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29 –

+0

Как я уже сказал, это, вероятно, а не проблемы, вызывающие проблемы. Или это? Как я могу это решить? – petter386

+0

Предоставить код, который вызывает вызов сервлета AJAX –

ответ

0

Мне не удалось решить мою проблему с .jsp-страницей, не загружаемой. Мне просто нужно было передать некоторые атрибуты из Servlete в javascript, поэтому я использовал jQuery ajax для PrintWriter, поэтому я получил эти атрибуты в качестве пары ключ: значение в функции javascript. Затем я просто использовал javascript, чтобы установить эти значения на некоторые промежутки.

0

в подтверждении дела, Вы уверены, что идете до конца и звоните вперёд?

Возможно, вы получаете нулевой указатель или что-то в этом роде.

Попробуйте добавить system.out.println() или запустите в режиме отладки.

+0

Я пробовал отлаживать его, но кажется, что все выполняется правильно, кроме этого. – petter386

+0

Я думаю, что проблема не в перекладине. Я добавил несколько system.out.print атрибутов в .jsp и имеет правильные значения. Но почему не перезагружается страница? – petter386

+0

Даже если я перейду на другую страницу, я все еще вижу тот же .jsp. – petter386

Смежные вопросы