2011-06-15 95 views
0

可有人告訴我如何JavaScript的變量分配到JSP請求或jsp的會話。如何JavaScript的變量分配到JSP和JSTL

我做這樣的事情

這裏deletedRows是一個隱藏字段。

var del=45; 
document.getElementById("deletedRows").value=del 
alert(document.getElementById("deletedRows").value); 
<%String del_values = request.getParameter("deletedRows");%> 
<%request.getSession().setAttribute("del_rows", del_values);%> 

我在我的servlet中沒有得到del的值。

+0

請仔細閱讀JSP應用程序的請求 - 響應週期 – 2011-06-15 06:31:05

回答

1

JSP被編譯到服務器上。所有客戶端得到的都是JSP的「輸出」:HTML,CSS和Javascript。

的JavaScript被此之後,執行。意思是當JSP執行時,JSP中的所有內容都會變成HTML等。您可能想將此視爲Java/JSP部分已「完成」,現在HTML/Javascript部分接管。

現在,你想傳遞/計算一些數值通過JavaScript操縱回服務器。 (我認爲這是你的意思,當你說「assingn的JavaScript變量jsp請求或jsp會話」

爲此,你必須提交頁面到服務器,這些值應該是窗體的一部分被提交。

您可能已經在某些HTML元素(如<input><select>)這些值,如果不是你可以創建隱藏要素和提交<form>之前填充這些與價值觀。

在您提供的代碼中,您正在填充隱藏的字段,但您必須檢索servlet中的值,而不是在JSP本身中。另外,請確保<form>中的隱藏字段以及該表單已提交。

將表單提交給servlet後,可以通過request.getParameter在Servlet中檢索值。

使用URL參數或異步(AJAX)請求向服務器發送值的方法很少,但我不確定是否也在查看這些值。

1

任何形式的字段,包括隱藏字段,從瀏覽器提交將可以在您的JSP中使用request.getParameter("fieldname");訪問。查詢字符串參數可以以相同的方式訪問。

請確保您的表單字段具有指定的name屬性,因爲它是該名稱(不是id屬性),該名稱將成爲服務器端代碼中的參數名稱。

你已經在你的問題中顯示的一小段代碼中做了什麼,即設置隱藏表單字段具有JavaScript變量的值,應該允許提交該值並在服務器中訪問該值端代碼。但很難看出爲什麼它沒有看到至少一些你的表單HTML,特別是隱藏字段的定義不工作。這也將有助於看到如何提交。 (我假設它是提交:如果您正試圖使一切只是它不會工作在服務器上的代碼運行,因爲JavaScript是由服務器文檔內容處理,不執行它再次,我真的不能告訴你是如何使用的代碼沒有看到更多的周邊的JSP)

UPDATE:我明白了,因爲我開始打字我的回答您的代碼已被格式化。你不希望所有五條線都在服務器上運行嗎? JavaScript代碼僅在呈現頁面後在客戶端瀏覽器上運行。在頁面到達瀏覽器之前,在服務器上執行<% %>之間的Java代碼,因此根本無法訪問JavaScript。任何不在<% %>標記中的東西都會按原樣發送到瀏覽器 - 這樣servlet就不會與之互動。