2011-05-09 163 views
0

我想存儲從前一個JSP中的request.getAttribute()獲取的對象,以便我可以在另一個頁面中使用它,因爲我不想使用服務器會話來存儲屬性。如何實現這一目標?我想要存儲的對象有5個字符串,其中包含getter和setter。將java對象存儲在HTML5本地存儲中

回答

3

您可以通過使用使用JavaScript的localStoragesetItemgetItem來實現此目的。

request paramter添加到HTML5本地存儲。

<script type="text/javascript"> 
    localStorage.setItem('user','${param.user}'); //Where param user is your request parameter from previous jsp. 
</script> 

現在你存儲值獲取到本地存儲

<script type="text/javascript"> 
    localStorage.getItem('user'); 
</script> 

注意:這隻會工作,以支持localStorage的瀏覽器。

檢查html5/webstorage瞭解更多信息。

更新: 上面的例子使用字符串存儲在localStorage中。爲了實現存儲作爲一個對象,這將需要一些轉換或使用可用工具的混合。像Java對象以json到javascript到localstorage或json到本地存儲。我還沒有測試這一點,但下面的一些鏈接可以幫助做到這一點

注意:這不能存儲在localStorage的Java對象的確切方式或有可無論如何。但我認爲可以使用上面的一些技術將Java對象存儲在localStorage中。爲了獲得localStorage中的對象,我認爲你需要一個代碼來解析服務器端的對象(Java)。

+0

您無法通過JavaScript存儲Java對象! – Hache 2011-05-10 06:02:56

+0

@Hache:你有一點,我更新了我的帖子。我想還有一種方法可以將Java對象存儲到localStorage中。無論如何感謝指出。 – ace 2011-05-10 06:34:38

+0

@Hache:絕對有可能。他們只會被轉換爲字符串。所以,如果他們已經是字符串了,你有一個合適的轉換器讓他們回來,那麼沒有問題。 – BalusC 2011-05-10 11:53:57