簡體   English   中英

檢查變量是否為真

[英]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請求

另請參閱: Java / JSP / JSF與JavaScript之間的通信

一種更愚蠢的方法

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM