如何将属性从 servlet 转发到请求它的同一 JSP
Posted
技术标签:
【中文标题】如何将属性从 servlet 转发到请求它的同一 JSP【英文标题】:How do you forward attributes from a servlet to the same JSP that requested it 【发布时间】:2022-01-10 15:14:12 【问题描述】:对于上下文,我有一个名为“withdraw.jsp”的 jsp,它调用一个处理提款的 servlet。在这个 servlet 中,如果事务成功与否,我想传递一个字符串消息,并且我想将此消息发送到调用 servlet 的同一个 jsp(它仍然是“withdraw.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,因为它是空的,尽管它被 servlet 设置为属性。有什么帮助吗?
【问题讨论】:
【参考方案1】:您将 属性 与 参数 混淆了。
消息在您的 JSP 中始终为空,因为您在 servlet 中设置了一个属性,但在您的 JSP 中您正在寻找一个参数。 They are different things.
要做的事情:
使用RequestDispatcher
将.forward(...)
发送到您的JSP;
确保在 JSP 中检索属性;
do not use scriptlets。根据您的 JSP 版本,您可以使用 EL expressions or JSTL。
【讨论】:
...我发誓那是 getAttribute,我想我太累了。无论如何,感谢您指出这一点!以上是关于如何将属性从 servlet 转发到请求它的同一 JSP的主要内容,如果未能解决你的问题,请参考以下文章