简体   繁体   中英

jsp command <%=%> being ignored when it is used in a Javascript statement, inside a taglib tag statement?

An example will make this clearer!

The jsp file...

<%@ 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>

Note - the taglib is not mine and I have no control over it. (it isn't really called jam either :).

This then creates this HTML...

<td onmousedown="movePage('<%=targetpage%>;');" id="toast">toast</td>

Which as you can see: the <%=targetPage%> was only replaced/parsed in the non-javascript bit?

The compiled jsp file looks like this:

jspx_th_jam_005ftext_005f2.setOnmousedown("movepage('<%=targetpage%>')");

Anyone know what is going on, or how to fix it? Why is the <%=%> tag being ignored when it is part of JavaScript statement? :)

Here's a bit of a cheat solution, you dont need the JSP tag in that JS call. In fact, it's tidier this way

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM