2013-02-22 45 views
0

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

我首先从第一个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并不是很熟悉......

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

在此先感谢!

回答

0

而是设置为request,你可以按照以下的用户对象设置为会话,这样就不会消失为每一个新的请求,并在会话avaliable。

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

否则它不会是可能的请求之间共享。

谢谢。

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