2015-02-10 110 views
2
function submit() { 
    var name = document.getElementById('name').value; 
    var mob = document.getElementById('number').value; 

    sessionStorage.setItem("name", name); 
    sessionStorage.setItem("mob", mob); 
    document.getElementById("leadForm").action = "/confirm"; 
    document.leadForm.submit(); 
} 

在確認頁面上,我的JSP被調用,我想在此會話中傳遞此namemob,並且在此頁面上還有另外一個屬性,我必須將它傳遞給另一個頁面。如何在JSP頁面中獲取JavaScript會話屬性?

我不確定如何從JavaScript獲取會話值到JSP。

寫作在我的JSP頁面:

String name = (String) session.getAttribute("name"); 
out.println(name); 

我得到null值。

+0

您必須通過表單或AJAX將其發送到Web服務器。 – meskobalazs 2015-02-10 07:17:07

+0

而且請不要在JSP頁面中使用scriptlet,它是如此的90年代,而不是一個好方法:) – meskobalazs 2015-02-10 07:33:41

回答

1

sessionStorage與瀏覽器相關,變量name,mob在客戶端設置不在請求中。

你既可以把它們傳遞給服務器端,或再使用JavaScript顯示它們的值,

sessionStorage.getItem('name'); 
0

JS sessionStorage和JSP session是不一樣的。

如果你提交了一份名稱和移動HTML表單沒有那麼這將做到:

submit.jsp

<form action='confirm.jsp'> 
    Name: <input type='text' name='name'/><br/> 
    Mobile No: <input type='text' name='number'/><br/> 
    <input type='submit' value='Submit'/> 
</form> 

confirm.jsp

Name: ${param.name}<br/> 
Mobile: ${param.number}<br/> 
0

你可以在leadForm中爲這些變量創建隱藏字段。

<form name="leadForm" method="post" action="/confirm"> 
    <input type="hidden" name="name"/> 
    <input type="hidden" name="mob"/> 
    ... 
</form> 

然後你就可以在你的#input()功能進行設置:現在

document.leadForm.name.value = name; 
document.leadForm.mob.value = mob; 

,如果您發佈的形式,該值會爲您提供:

String name = (String) request.getParameter("name"); 
String mob = (String) request.getParameter("mob"); 

他們贏得因爲會話是服務器端的概念(請記住,HTTP是無狀態的),但它們將處於HTTP請求中。如果你從現在開始在會話中需要它們,你可以把它們放進去。

相關問題