[英]checking whether the variable is true or not
function add(){
<%if(empRecNum != null && !(empRecNum.equals("")))
{
empSelected=true;
}
boolean canModify = UTIL.hasSecurity("PFTMODFY") && empSelected;
%>
df('ADD');
}
當我單擊添加時,我需要檢查empSelected是否為true並傳遞此canModify值。 會叫嗎?
這是我檢查JavaScript中的Scriptlet的正確方法嗎
您需要正確理解以下概念:Java / JSP在Web服務器上運行並產生HTML / CSS / JS輸出。 網絡服務器將HTML / CSS / JS輸出發送到網絡瀏覽器。 Webbrowser檢索HTML / CSS / JS輸出並顯示HTML,應用CSS並執行JS。 如果Java / JSP正確完成了工作,則webbrowser中應該看不到任何Java / JSP代碼行。 右鍵單擊Web瀏覽器中的頁面,然后選擇“ 查看源代碼” 。 你看到了吧?
Web瀏覽器完全不了解服務器端的Java / JSP代碼。 它所知道並能看到的只是它檢索到的HTML / CSS / JS代碼。 Web瀏覽器和Web服務器之間的唯一通信方式是使用HTTP請求。 在Web瀏覽器中,可以通過在地址欄中輸入URL,單擊(書簽)鏈接,按下提交按鈕或使用JavaScript執行XMLHttpRequest
來觸發HTTP請求。 在Web服務器中,可以配置Java / JSP(和Servlet)代碼,使其僅在某些URL上執行。 例如,某個位置的JSP頁面,映射到特定url-pattern
等的Servlet。
簡而言之,要使JavaScript訪問Java / JSP變量,您需要做的就是讓Java / JSP將它們打印為好像是JavaScript變量一樣。 要使JavaScript執行Java / JSP方法,您需要做的就是讓JavaScript 觸發HTTP請求 。
一種更愚蠢的方法
var canModify = Boolean(${canModify});
使用jstl el可以更清楚地知道您打算做什么。 對boolean的調用將轉換javascript boolean中的給定值。
記得:
Boolean(true); // returns true
Boolean(false); // return false
Boolean(); // returns false
JSP中定義的canModify
值永遠不會傳遞給JavaScript。 您需要在JavaScript中重新定義變量,例如:
<%
if (canModify) { // This is the JSP variable
%>
var canModify = true; // This is the JavaScript variable
<%
} else {
%>
var canModify = false;
<%
}
%>
另外,您應該放棄JSP scriptlet並切換到JSTL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.