Jsp 如何使用JSTL取消显示HTML标记

Jsp 如何使用JSTL取消显示HTML标记,jsp,escaping,jstl,Jsp,Escaping,Jstl,我必须用JSTL在页面中显示一些已经转义HTML标记的内容 我知道excapeXml用于转义可以解释为标记的字符。但它似乎只适用于普通和未转义的HTML:这是新闻,它不适用于已转义的HTML:p这是新闻/p P>那么,我怎样才能摆脱JSTL? 已经逃脱的HTML?为什么不考虑使用JSP自定义标记?通过使用自定义标记,您可以对标记进行更多控制 对于您的案例,您可以在文章中找到示例2或4 将内容作为标记体放在jsp中: p这是新闻/pJSTL不提供专门用于去除HTML(或XML)的标记或函数

我必须用JSTL在页面中显示一些已经转义HTML标记的内容

我知道
excapeXml
用于转义可以解释为标记的字符。但它似乎只适用于普通和未转义的HTML:
这是新闻

,它不适用于已转义的HTML:
p这是新闻/p


<> P>那么,我怎样才能摆脱JSTL?

已经逃脱的HTML?为什么不考虑使用JSP自定义标记?通过使用自定义标记,您可以对标记进行更多控制

对于您的案例,您可以在文章中找到示例2或4

将内容作为标记体放在jsp中:



p这是新闻/p
JSTL不提供专门用于去除HTML(或XML)的标记或函数。您最接近的赌注是
fn:replace()
,如下所示,假设所讨论的未替换HTML内容是通过
${bean.content}
提供的

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(fn:replace(bean.content, '&lt;','<'), '&gt;','>')}
最后,只需按如下方式使用:

<%@taglib prefix="f" uri="http://example.com/functions" %>
...
${f:escapeXml(bean.content)}

...
${f:escapeXml(bean.content)}


与具体问题无关,我个人会退后一步。首先,您究竟为什么要转义HTML?这很奇怪。通常,转义应该只在HTML呈现期间发生。我宁愿查找负责转义HTML的那个,然后将其更改为不再不必要地转义HTML。可能是负责这一点的人没有真正理解网页中HTML转义的概念,而是在请求处理期间手动执行转义,作为未经深思熟虑的XSS预防尝试的一部分。这是阅读的食物:。

谢谢。我正在使用JSTL,所以只想知道如何修复它。感谢您提供的信息,如果内容没有固定,或者我的问题没有得到我预期的回答,这将是最好的解决方案。您使用的是什么类型的JSTL?让我看看我能不能帮你:)你是说版本吗?1.2. 或者我使用的标签:?谢谢你编辑和回答我的问题。如果JSTL不能用于逃避HTML,我不确定,那么这是一个很好的解决方案,谢谢。
<%@taglib prefix="f" uri="http://example.com/functions" %>
...
${f:escapeXml(bean.content)}