Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript文件未访问jstl_Javascript_Jquery_Jstl - Fatal编程技术网

Javascript文件未访问jstl

Javascript文件未访问jstl,javascript,jquery,jstl,Javascript,Jquery,Jstl,我将jstl代码放在一个javascript文件中,该文件包含在我的jsp页面中。 我遇到的问题是,当我在jsp页面内的脚本中编写jstl代码时,它工作正常。但是当我在一个单独的js文件中编写相同的代码时,jstl代码根本不起作用。 有什么我可以解决的吗?任何帮助都将不胜感激。下面是我的代码。 谢谢 $(“img[name='cancel'])。悬停(函数(){ var src=“”; $(this.attr(“src”,src); },函数(){ var src=“”; $(this.attr

我将jstl代码放在一个javascript文件中,该文件包含在我的jsp页面中。 我遇到的问题是,当我在jsp页面内的脚本中编写jstl代码时,它工作正常。但是当我在一个单独的js文件中编写相同的代码时,jstl代码根本不起作用。 有什么我可以解决的吗?任何帮助都将不胜感激。下面是我的代码。 谢谢

$(“img[name='cancel'])。悬停(函数(){
var src=“”;
$(this.attr(“src”,src);
},函数(){
var src=“”;
$(this.attr(“src”,src);
});

JSP在生成输出到浏览器之前由服务器进行解释,因此您的标记在提供给浏览器之前会被解释。使用标准配置,服务器不会解释JS文件,只是将其作为纯文本传递给客户端

如果您希望使用JSP动态生成JS(如您的示例中所示),则需要让服务器在将文件提供给客户机之前对其进行解释。最简单的方法是将JS的内容放入JSP文件中。然后在html页面上包含带有script标记和属性src等于your.jsp的脚本,例如。

JSP在服务器端得到解释。我看不出这是如何工作的。假设您将JS文件包含在
元素中,这是由浏览器完成的。如果我将脚本标记放在jsp中,它就可以正常工作。如果我通过使用脚本标记包含外部js文件来执行相同的操作,那么它就不起作用了。问题是js文件必须只包含JavaScript代码。JSTL只在视图(在本例中是JSP文件)上工作,不在视图之外。最适合您的是在JS文件中包含变量,并使用相应的EL/JSTL代码将这些变量填入JSP。感谢Luigi,这就是我需要知道的。您是否测试了上一个代码
?其工作方式如下:浏览器将向服务器请求“script.JSP”。服务器(假设是Tomcat或任何可以处理JSP的东西)将处理该页面(所有EL/JSTL标记都将被呈现)并生成对浏览器的响应。此时,浏览器将看不到任何JSP标记。为了回答你的问题,是的,我使用了类似的技术来动态生成JS。这是一个非常好的主意@BeataGellner!很好用!我在包含jsp的
部分的
标题中写了这篇文章:
$("img[name='cancel']").hover(function(){
      var src = "<c:url value='/images/stop.ico'/>";
      $(this).attr("src",src);
  },function(){
      var src = "<c:url value='/images/gtk_close.ico'/>";
      $(this).attr("src",src);
  });