对于上下文,我有一个名为"退出.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