jsp命令<;%%=%&燃气轮机;在Javascript语句中,在taglib标记语句中使用时被忽略?
一个例子会让这更清楚 jsp文件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
<%@ 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与页面名称不匹配。