【问题标题】:How to do the console.log for EL expression in JS file如何在 JS 文件中为 EL 表达式做 console.log
【发布时间】:2012-10-13 15:09:55
【问题描述】:

如何在JS文件中为EL表达式做console.log

jQuery(document).ready(function() {

    $('.js-bbCheckbox').click(function(event) {
        var bbck = '${tagOne}';
        console.log (bbck);
        console.log (${tagTwo});
});

【问题讨论】:

  • 请正确对待您的条款。 ${foo} 不是“JSTL 标签”。这是一个“EL表达式”。我相应地编辑了问题。同时,请仔细阅读stackoverflow.com/tags/jstl/info,了解JSTL到底是什么。

标签: javascript jquery jsp el


【解决方案1】:

首先,您需要了解 JSP(以及 JSTL 和 EL)基本上生成 HTML(以及 CSS 和 JS)代码。它不与 JavaScript 代码同步运行。如果您在 webbrowser 中右键单击 JSP 页面并执行查看源代码,那么您会看到它。

我认为您的具体问题是因为 ${tagTwo} 返回一个普通的香草字符串,而 JS 又将其解释为变量名,因为它没有用引号引起来。

你需要让 JSP 打印一个完整的 JS 字符串而不是一个变量名。

console.log('${tagTwo}');

【讨论】:

  • 通过这样做,我只是将其打印出来,我想获得该标签的值。
  • 显然这部分JS代码没有包含在.jsp文件中,而是包含在<script src="some.js"></script>导入的普通.js文件中。这是真的? EL 表达式显然只能在 JSP 文件中工作,因为该文件已由 JspServlet 解析。例如。 <script>console.log('${tagTwo}');</script>.
  • 这就是我试图找出的可能。
【解决方案2】:

@Shoaib Ud-Din,如果你不介意一点内联代码,这应该适用于在 DOM 中加载的任何包含的 .js 文件:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<c:set var="tagOne" value="Hello World" scope="session" />
<script>
    var bbck = "<c:out value="${tagOne}" />";
    console.info("<c:out value="${tagOne}" />");
</script>

【讨论】:

    猜你喜欢
    • 2013-03-13
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多