【问题标题】:Get multiple attributes from servlet/s to same JSP从 servlet/s 获取多个属性到同一个 JSP
【发布时间】:2013-02-22 10:34:28
【问题描述】:

我在从两个不同的 servlet 获取 JSP 页面(一个 jsp 页面)中的多个属性时遇到问题。我遇到了一个异常,因为当 JSP 加载时,两个 request.getAttribute() 都被执行了,其中一个还没有从 servlet“发送”。

我首先从第一个 servlet 发送这个:

request.setAttribute("user", user);
RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
dispatcher.forward(request, response);

这就是我从 JSP 文件中获取它的方式:

user = (User) request.getAttribute("user");
You are logged in as <%= user.getUsername() %>.

现在我从另一个 servlet 发送这个:

request.setAttribute("convertedValue", convertedValue);
RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
dispatcher.include(request, response);

在 JSP 中得到这个:

double value = (Double) request.getAttribute("convertedValue");

问题是我不能像这样拥有它,因为我无法得到“还没有”的东西。我尝试过使用 if(getAttribute!=null) 之类的 if 语句,但效果不太好。

也许更新 JSP 页面的一部分会起作用,但我不知道怎么做。我对 AJAX 不太熟悉..

我真的希望你们能帮我解决这个问题!

提前致谢!

【问题讨论】:

    标签: jsp jakarta-ee servlets refresh dispatcher


    【解决方案1】:

    您可以将用户对象设置为会话,而不是设置为request,如下所示,这样它就不会因每个新请求而消失,并且在会话中可用。

    喜欢

    req.getSession().setAttribute("user",user);
    

    否则将无法在请求之间共享。

    谢谢。

    我希望我以正确的方式理解了你的问题。

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 2014-06-22
      • 2014-03-22
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多