[英]passing value to JSP via javaScript
boolean canModify = UTIL.hasSecurity("PFTMODFY") && something;
function name() {
I need to pass a value false to something when the page loads.
}
window.onLoad = name
如何在頁面加載時將值從JavaScript傳遞到JSP
我認為您的意思是相反的,讓服務器端代碼輸出一個JavaScript可以在頁面加載時看到的值。
就像輸出其他任何東西一樣輸出它,例如:
<% boolean canModify = UTIL.hasSecurity("PFTMODFY") && something; %> var canModify = <%=canModify%>; // ^ ^ // | +-- server-side variable // +-- client-side variable
當JSP實際運行時,返回給客戶端的腳本代碼將只是
jQuery.get("/your/page/url", {"name": "value"});
要么
new Ajax.Request("/your/page/url", {
method: "GET", // or, of couse, "POST"
parameters: {"name": "value"}
});
這是一個布爾值; 如果您需要輸出一個字符串,則需要在其兩邊加上引號,並注意避免對其中應在JavaScript文字字符串中進行轉義的所有字符進行轉義(例如,例如反斜杠以及所用的任何引號字符) )。
但是,如果您真的想在頁面加載時將值發送回服務器(這很奇怪,但是),您必須使用Ajax 。 如果您打算使用Ajax,我建議您使用jQuery , Closure , Prototype , YUI或其他任何一種庫,因為它們可以為您大大簡化流程。 例如,使用jQuery,此客戶端代碼將值發送回服務器:
jQuery.get("/your/page/url", {"name": "value"});
(或jQuery.post
進行更改的內容)。 使用原型,它將是:
new Ajax.Request("/your/page/url", { method: "GET", // or, of couse, "POST" parameters: {"name": "value"} });
我上面提到的所有庫都具有類似的易於使用的機制,用於將數據發送到服務器。 請注意,此機制受“ 相同來源策略”約束。
你並不需要一個庫這一點,當然-任何一個圖書館能做到的,你可以做自己。 我上面列出的功能都是XMLHttpRequest
對象的所有包裝( Wikipedia , MSDN , MDC )。 有關示例,請參見鏈接的資源。
我不應該說您需要為此使用Ajax,更像您想要的那樣。 :-)如果由於某種原因您確實不想使用Ajax,可以通過使用JavaScript向頁面中添加一些內容來觸發從服務器進行檢索,然后在該請求中將您的值作為標志包括在內,來實現。 例如:
var link = document.createElement('link'); link.setAttribute('rel', 'stylesheet'); link.src = "/path/to/jsp?name=" + encodeURIComponent(value); document.getElementsByTagName('head')[0].appendChild(link);
您的JSP將執行查詢字符串所需的任何操作,然后返回樣式表中有效的任何內容(例如/* */
)。 或者,如果您不想使用樣式表鏈接,請使用img
標簽並返回一個透明像素; 等等
但是我不會這樣做 。 我會用Ajax。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.