如何将属性从servlet转发到请求它的同一JSP



对于上下文,我有一个名为"退出.jsp";它调用一个处理提款的servlet。在这个servlet中,如果事务成功与否,我想传递一条字符串消息,并且我想将此消息发送到调用servlet的同一个jsp(它仍然是"撤回.jsp"(

//In the servlet
RequestDispatcher view = request.getRequestDispatcher("registeredUser/withdraw.jsp");
String error = (String)ex.getMessage();
request.setAttribute("errorMessage", error);
view.include(request,response); // i also tried forward here
//In the jsp
<% if(request.getParameter("errorMessage") != null){ %>
<p> <%=(String)request.getParameter("errorMessage")%> </p>
<% } %>

如果我运行这段代码,jsp将不会检索errorMessage,因为它是null,尽管servlet将其设置为属性。有什么帮助吗?

您混淆了属性参数

消息在JSP中总是为null,因为您在servlet中设置了一个属性,但在JSP中您正在寻找一个参数。它们是不同的东西。

要做的事情:

  • .forward(...)到您的JSP使用RequestDispatcher
  • 确保在JSP中检索到一个属性
  • 不要使用scriptlet。根据您的JSP版本,您可以使用EL表达式或JSTL

最新更新