javascript内部的jstl

javascript内部的jstl,javascript,html,jsp,jstl,Javascript,Html,Jsp,Jstl,可以在javascript中使用jstl吗 我正在准备设置 然后在html中访问该值并执行一些代码。我的问题是c:set总是在执行,即使javascript条件为false <script type="text/javascript"> var v1 = false; <c:set var"abc" value="yes"/> if(v1){ <c:set var"abc" value="no"/> } </script> var v1=

可以在javascript中使用jstl吗

我正在准备设置

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

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

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

var v1=假;
如果(v1){
}

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

在讨论服务器端JSP解释时,“在Javascript内部”的想法没有任何意义。就这个领域而言,根本没有Javascript这样的东西

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

var something = '${abc}';

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

这是一个非常古老的线程,但我遇到同样的问题时遇到了它。因为我自己也想到了一个解决方案,所以我会把它贴在这里,以防将来对别人有所帮助

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 auto completion和auto indentation的颜色方案

要愚弄IDE,您可以添加

// <script> 
//
作为js注释,在实际代码之前(在“

var val1=“${myVal}”;
读这篇文章:切中要害:Java/JSP/JSTL/EL在Web服务器上运行并生成HTML/CSS/JS。Web服务器向webbrowser发送HTML/CSS/JS。webbrowser检索HTML/CSS/JS并执行它。如果Java正确地完成了任务,webbrowser不应该检索任何一行Java/JSP/JSTL/EL代码。这仅仅是因为它不理解它。
// </script>
<script>
    <c:set var="myVal" value="Hello"/> 

    var val1="${myVal}";

</script>