当前位置: 首页 > 知识库问答 >
问题:

ATG-调用checkFormRedirect时会话或请求属性为空

郭鸿信
2023-03-14

在我的ATG应用程序中,当我使用checkFormRedirect将用户重定向到带有一些参数的jsp页面时,我得到的参数为NULL。请参阅下面的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中使用变量并设置值,但仍然得到的值为NULL。能不能帮点忙。

共有1个答案

祁嘉木
2023-03-14

通常,您不能使用sendRedirect()方法发送POST请求。您可以使用RequestDispatcher在相同的web应用程序、相同的上下文中转发()带有参数的请求。

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

HTTP规范规定,所有重定向必须采用GET(或HEAD)的形式。如果安全性有问题,可以考虑加密查询字符串参数。另一种方法是,您可以通过使用POST方法创建一个隐藏表单,并在加载页面时使用javascript提交该表单,从而将POST发送到目标。

所以您可以使用会话方法:我试过了,我得到了JSP中的值。

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

希望能有所帮助。

 类似资料:
  • 问题内容: 我从中检索到的Userprincipal是否绑定到请求或会话? 这是我访问当前登录用户的方式。如果当前会话被破坏,这将无效吗? 问题答案: 这取决于您如何配置它(或者说,您可以配置其他行为)。 在Web应用程序中,您将使用与交互的。 的Java文档以: 在请求之前,使用从已配置的{@link SecurityContextRepository}获取的信息填充{@link Securit

  • 从WebSocketendpoint,我尝试调用单例服务。但是我无法使用来自WebSocket的请求或会话范围。 谢谢你的帮助!

  • 是否有办法获得请求。要求要求一场在图像的层次结构中看到的属性?我尝试了以下方法: <代码>对象值=请求。getAttribute(“Travis”) 和

  • 问题内容: 但是我已经没有struts2-spring插件,也没有在应用程序中使用spring。 我有3个测试用例,其中2个在请求为null时失败,一个在会话为null时失败 第一个堆栈跟踪 对应于 第二和第三测试堆栈跟踪 对应于 我相信存在一些依赖问题。我尝试过删除一些依赖项,并一并删除,但是都没有用。 这是我的POM的样子: 更新 -测试看起来像 更新 我按照建议将测试更改为executeAc

  • 问题内容: 我想知道是否有一种简单的方法可以从Jade模板中访问Express.js的req或会话变量,而无需通过常规响应传递它。 还是这是唯一的方法? 问题答案: 您需要创建一个Express才能使用。 然后在模板内部,您可以使用或其他任何东西。 注意:Express 3中不推荐使用dynamicHelpers