如何在使用tab-lib时转义从jsp文件发送的Ajax响应

时间:2012-12-19 08:23:38

标签: javascript jsp jquery jspinclude

我有一个jsp页面。在其中我导入一个jspf文件。在jspf文件中,我使用了类似于

的tab-lib
<a href="javascript:moveToPage('<c:out value="${requestScope.PREVIOUS_LINK}"/>')">
<img align="absmiddle" src="images/<c:out value='${selectedTheme}'/>/previous.gif" width="23" height="14" alt="Previous" title="<fmt:message key="jsp.imagetitle.Previous"/>" border="0"></a>

jsp文件看起来像

<div id="someId">
<%@ include file='jspf/myNewPage.jspf'%>
</div>

使用ajax将此jsp页面调用到另一个jsp页面,并使用

填充div
$('#divid').html(response.responseText);

当我在屏幕上显示输出时,它会显示一些打印的html标签,并且不会打印img标签中的图像。

1 个答案:

答案 0 :(得分:0)

如果您看到HTML标记,那么代码中的某些人/某些内容会将HTML转换为文本(即它会将所有特殊字符转移到<&lt;等)。您应该在查看时看到这一点在浏览器中的HTML源代码中。

这对我来说很奇怪:

<a href="javascript:moveToPage('<c:out value="${requestScope.PREVIOUS_LINK}"/>')">

<不允许在元素中,因此这应该是一个错误,或者您粘贴的代码不是来自jspf文件的1:1副本。

这是有效的:

<a href="javascript:moveToPage('&lt;c:out...

但不再执行c:out

改为使用fn:escapeXml()

<a href="javascript:moveToPage('${fn:escapeXml(requestScope.PREVIOUS_LINK)}'">