【问题标题】:jstl inside javascriptjavascript里面的jstl
【发布时间】:2011-05-06 16:31:25
【问题描述】:

可以在javascript中使用jstl吗?

我要设置<c:set var="abc" value="yes"/>

然后稍后在 html 中访问该值并执行一些代码。我的问题是即使 javascript 条件为假,c:set 也始终在执行。

<script type="text/javascript">
var v1 = false;
<c:set var"abc" value="yes"/>

if(v1){
  <c:set var"abc" value="no"/>
}
</script>

在上面的代码中,即使 v1 为 false 'no' 也设置为 abc。

【问题讨论】:

  • 阅读:balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html 重点:Java/JSP/JSTL/EL 在网络服务器上运行并生成 HTML/CSS/JS。网络服务器将 HTML/CSS/JS 发送到网络浏览器。 Webbrowser 检索 HTML/CSS/JS 并执行它。如果 Java 正确地完成了它的任务,那么 Web 浏览器不应该检索到任何 Java/JSP/JSTL/EL 代码行。只是因为它不明白。

标签: javascript html jsp jstl


【解决方案1】:

当您谈论服务器端 JSP 解释时,“在 Javascript 内部”的想法没有任何意义。就该域而言,没有 Javascript 这样的东西。

因此,是的,这是可能的,如果你的意思是你想做类似的事情

var something = '${abc}';

请注意,您必须小心引用和特殊字符。 JSTL fn:escapeXml() 函数在您将 JSP 变量插入到将被浏览器解释为 Javascript 源的页面的一部分时是无用的。您可以使用 JSON 库对字符串进行编码,也可以编写自己的 EL 函数来进行编码。

【讨论】:

    【解决方案2】:

    这是一个相当古老的线程,但是当我遇到同样的问题时,我碰到了它。由于我自己想到了一个解决方案,所以我会在这里发布它以防将来对某人有所帮助。

    html(或 jsp)文件在声明为 javascript 源的外部文件中查找文本。

    Tomcat(或类似的)仅解释具有 .jsp 扩展名的文件中的 JSTL 标记(或者也可能是其他一些,但与此答案无关)。

    所以,重命名你的 .js 文件,给它一个 .jsp 扩展名(例如 javascript.js 到 javascript_js.jsp )

    在 javascript_js.jsp 的顶部添加这些行:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    

    保持代码不变。

    显然,如果您在标头中使用 c: 以外的前缀,则还需要添加更多前缀。

    如果您使用 Eclipse(不了解其他 IDE),它将假定它不是 javascript 文件,并且您会丢失不同关键字(var、function 等)的配色方案、var name 自动完成和自动缩进。

    为了愚弄IDE,你可以添加

    // <script> 
    

    作为 js 注释,在实际代码之前(在 "

    // </script>
    

    在文件末尾,再次作为 js 注释。

    它对我有用。

    【讨论】:

      【解决方案3】:
      <script>
          <c:set var="myVal" value="Hello"/> 
      
          var val1="${myVal}";
      
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-10
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多