0

我有一个jsp页面。在其中我导入了一个 jspf 文件。在 jspf 文件中,我使用了与此类似的选项卡库

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

这个jsp页面使用ajax调用到另一个jsp页面并使用填充一个div

$('#divid').html(response.responseText);

当我在屏幕上获得输出时,它显示打印了一些 html 标签,而 img 标签中的图像未打印。

4

1 回答 1

0

如果您看到 HTML 标记,那么代码中的某人/某事会将 HTML 转换为文本(即,它会转义所有特殊字符,例如<to&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)}'">
于 2012-12-19T08:51:38.643 回答