Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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
jsp命令<;%%=%&燃气轮机;在Javascript语句中,在taglib标记语句中使用时被忽略?_Java_Javascript_Jsp_Taglib - Fatal编程技术网

jsp命令<;%%=%&燃气轮机;在Javascript语句中,在taglib标记语句中使用时被忽略?

jsp命令<;%%=%&燃气轮机;在Javascript语句中,在taglib标记语句中使用时被忽略?,java,javascript,jsp,taglib,Java,Javascript,Jsp,Taglib,一个例子会让这更清楚 jsp文件 <%@ taglib prefix ="jam" uri= "http://jam.tld" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%> <% String targetPage = true ? "toast" : "bread"; %> <jam:text o

一个例子会让这更清楚

jsp文件

<%@ taglib prefix ="jam" uri= "http://jam.tld" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%>
<%
     String targetPage = true ? "toast" : "bread"; 
%>

<jam:text onmousedown="movePage('<%=targetPage%>');" id="<%=targetPage%>"><%=targetPage%></jam:text>

注意-标记库不是我的,我无法控制它。(它也不是真正的果酱:)

然后创建这个HTML

<td onmousedown="movePage('<%=targetpage%>;');" id="toast">toast</td>
toast
如您所见:只在非javascript位中替换/解析了

编译的jsp文件如下所示:

jspx_th_jam_005ftext_005f2.setOnmousedown("movepage('<%=targetpage%>')");
jspx_th_jam_005ftext_005f2.setOnmousedown(“movepage(“”));
有人知道发生了什么,或者如何修复它吗? 为什么
标记作为JavaScript语句的一部分被忽略?
:)

这里有一个作弊的解决方案,在JS调用中不需要JSP标记。事实上,这样更整洁

<jam:text onmousedown="movePage(this.id);" id="<%=targetPage%>"><%=targetPage%></jam:text>


只是一个猜测,请尝试
onmousedown=“movePage('${targetPage}');”
(使用表达式语言)不,它不会编译为JSP。您的意思是将jquery添加到页面并使用它吗?不,我的意思是使用。在您的示例输出中,似乎在
id=“…”
(仅使用双引号)中正确地完成了替换。在
onmousedown=“…”
中,它用双引号和单引号包装。请尝试
“movePage(\“\”);“
,即转义双引号而不是单引号。uoo您能举个例子吗?很好的解决方案。然而,为了清晰起见,我的示例被简化了,遗憾的是id与页面名称不匹配。