从servlet / s获取多个属性到同一个JSP

时间:2013-02-22 10:34:29

标签: jsp java-ee servlets refresh dispatcher

我在从两个不同的servlet中获取JSP页面(一个jsp-page)中的多个属性时遇到问题。我得到一个异常,因为当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语句,如if(getAttribute!= null),但它不太好。

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

喜欢

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

否则就不可能在请求之间共享。

谢谢。

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