问题:对于JSP中包含JavaScript的情况,如果JS中有一String, String中包含了JSP的tag(e.g. <custom_tag:xxx ...>),那么在JSP翻译成Servlet时,web服务器并不识别这个tag在JS中的含义,而是依旧按照tag在JSP中的语法含义进行解释 -- 也就是说,即使该tag在JS中被注释掉:
// <custom_tag:xxx ... />
web服务器并不买"//"注释符的账,依旧是我行我素的进行自己份内的工作:翻译这个自定义的tag.
这里举自定义的tag,是因为这种错误大多发生在custom tag情况下,对于<span ...>...</span>这种html标准tag,web服务器的翻译工作并不会带来什么不同.
比如,在JS中有:
var s = '<custom_tag:xxx ... />';
经过web服务器翻译后,<custom_tag:xxx ... />的结果很可能产生单引号(attribute),在这种情况下,由于和上行代码中的外部单引号混淆,而造成了语法错误,或者之后的运行异常。
-- 一句话:JSP翻译时是针对全部文档的(当然,也包括了内嵌的JS)
如果真想在JS中使用JSP的tag,应该怎么办呢?
解决方案:
将custom tag放在一个隐藏的span中:
<span id='custom_span' style='display:none'><custom_tag
// <custom_tag:xxx ... />
web服务器并不买"//"注释符的账,依旧是我行我素的进行自己份内的工作:翻译这个自定义的tag.
这里举自定义的tag,是因为这种错误大多发生在custom tag情况下,对于<span ...>...</span>这种html标准tag,web服务器的翻译工作并不会带来什么不同.
比如,在JS中有:
var s = '<custom_tag:xxx ... />';
经过web服务器翻译后,<custom_tag:xxx ... />的结果很可能产生单引号(attribute),在这种情况下,由于和上行代码中的外部单引号混淆,而造成了语法错误,或者之后的运行异常。
-- 一句话:JSP翻译时是针对全部文档的(当然,也包括了内嵌的JS)
如果真想在JS中使用JSP的tag,应该怎么办呢?
解决方案:
将custom tag放在一个隐藏的span中:
<span id='custom_span' style='display:none'><custom_tag