繁体   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