java - 为什么在 HTML 中显示转义字符?

标签 java html jsp escaping jstl

在网页上显示内容之前,我需要对一些文本进行转义,而这实际上是正确完成的。但是,当我在 html 中显示字符串时,仍会显示转义字符。下面就是这样一个例子:

hello there my ni&%ame is + - && !

相应的转义字符串如下:

hello there my ni&%ame is + - && !

我在某处读到,taglib 中的核心只会转义基本的,例如 >、<、"、\t 和空格。但是,这些转义序列都没有从 html 代码中删除。你们有谁知道吗请问如何解决这个问题?谢谢

以下是用于将特定字符转换为其转义字符的部分代码:

while (character != CharacterIterator.DONE ){
         if (character == '<') {
           result.append("&lt;");
         }
         else if (character == '>') {
           result.append("&gt;");
         }
         else if (character == '&') {
           result.append("&amp;");


                } .....
       return result;
}

转义部分已完成并完美运行..当我尝试将带有转义字符的字符串显示到 html 页面时出现问题

最佳答案

if (character == '<') {
    result.append("&lt;");
}
else if (character == '>') {
    result.append("&gt;");
// ...

删除它。你不需要它。江苏科技研究院<c:out>已经做了这个工作。

<c:out value="${someBean.someProperty}" />

您的 HTML 字符串会被转义两次。每个&变成 &amp;再次等等。 如果你真的需要自己动手转义(为什么?)那么就不要使用 <c:out>完全:

${someBean.someProperty}

或通过 escapeXml="false" 关闭其转义:

<c:out value="${someBean.someProperty}" escapeXml="false" />

关于java - 为什么在 HTML 中显示转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827896/

相关文章:

javascript - 尝试在单击按钮时显示 div

javascript - 如何识别javascript中的单选按钮

Java - 使用正则表达式和换行符分割字符串

java - gradle 多项目出现 NoClassDefFoundError

java - 在 Java 1.5 中,将文件从客户端 http 传输到服务器的最佳方法是什么?

jquery - Rails 应用页面源码

java - 关于重写 SimpleUrlAuthenticationFailureHandler 的说明

java - 将请求从 servlet 转发到 jsp

java - 防止消息处理的竞争条件

java - IRAD 7 中 IVY 的最佳替代品