У меня возникла проблема с пересылкой на страницу .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, я все еще вижу предыдущий.
http://docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html#forward%28javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29 –
Как я уже сказал, это, вероятно, а не проблемы, вызывающие проблемы. Или это? Как я могу это решить? – petter386
Предоставить код, который вызывает вызов сервлета AJAX –