ATG - атрибут сессии или запроса, равный нулю, когда вызывается checkFormRedirect - PullRequest
0 голосов
/ 31 января 2019

В моем приложении ATG, когда я перенаправляю пользователя на страницу jsp с некоторыми параметрами, используя checkFormRedirect, я получаю параметры как нулевые.Пожалуйста, смотрите ниже код FormHandler:

UserFormHandler:

public boolean handleUserRedirect(dynamo req, dynamo res){

//using request
req.setParameter("test", "testdata");

//using session
HttpSession session=req.getSession();  
session.setAttribute("uname","testdata"); 

//redirect to test.jsp
return checkFormRedirect("/test/test.jsp","null",req,res);
}

test.jsp:

<% out.println(session.getAttribute("uname")); %>

<% String stErrorMsg=(String)session.getAttribute("uname");%>

<%=stErrorMsg %>

<% request.getParameter("test")%>

Кроме того, я попытался использовать переменную в моем formHandler и значение настройки ивсе же я получаю значение как ноль.Может ли помочь в этом.

1 Ответ

0 голосов
/ 03 февраля 2019

Как правило, вы не можете отправить запрос POST с помощью метода sendRedirect ().Вы можете использовать RequestDispatcher для пересылки () запросов с параметрами в том же веб-приложении, в том же контексте.

RequestDispatcher dispatcher = servletContext().getRequestDispatcher("test.jsp");
dispatcher.forward(request, response);

Спецификация HTTP гласит, что все перенаправления должны быть в форме GET (или HEAD) .Вы можете зашифровать параметры строки запроса, если проблема в безопасности.Другой способ - вы можете POST к цели, имея скрытую форму с методом POST и отправляя ее с javascript при загрузке страницы.

Таким образом, вы можете использовать Сеансовый подход: Я опробовалЯ получаю значение в JSP.

<%
      out.println(session.getAttribute("message"));
      session.removeAttribute("message");
%>
/* Or using JSTL */
  <c:out value="${sessionScope.message}" />
  <c:remove var="message" scope="session" />

снимок экрана enter image description here

Надеюсь, эта помощь.

...