2013-02-22 54 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); 

否則它不會是可能的請求之間共享。

謝謝。

我希望我以正確的方式理解你的問題。