我在从两个不同的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不太熟悉..
我真的希望你们能帮我解决这个问题!
提前致谢!
答案 0 :(得分:0)
您可以将用户对象设置为会话,而不是设置为request
,因此它不会因为每个新请求而消失,并且在会话中可用。
喜欢
req.getSession().setAttribute("user",user);
否则就不可能在请求之间共享。
谢谢。
我希望我能以正确的方式理解你的问题。