JSP 将 <> 解释为 html 标签并添加结束标签

JSP interpreting <> as html tags and adding end tag

我正在开发 Spring-MVC 应用程序,我在其中将一些文本保存在数据库中,然后显示它。但是例如,如果我在文本字段中添加类似 <hello123> 的内容,它会同样保存在数据库中,但在显示时它会变成 <hello123></hello123>。我该怎么做才能避免 JSP 显示这些结束标记。我正在发布我如何显示代码。非常感谢。

JSP 代码:

<div class="inner-div">
        <span class="notice-text">${notices.mnotetext}</span>
    <span style="display:none"class="ellipsis"><span class="dots"> ... 
   </span><span class="more">mehr</span></span>
 </div>

我正在显示 mnotetext,但它变得一团糟,我该怎么办?你能帮忙的话,我会很高兴。非常感谢。

编辑 Thomas 描述的更改。

  <div class="inner-div">
<span class="notice-text">&lt;hello&gt;</span>  <span style="display:none"class="ellipsis"><span class="dots"> ... /span><span class="more">mehr</span></span>
    </div>

您正在输出中发送未转义的 HTML。尝试转义如下所示的值。这也将防止 XSS 攻击。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<div class="inner-div">
    <span class="notice-text"> <c:out value="${notices.mnotetext}"/> </span>
    <span style="display:none"class="ellipsis"><span class="dots"> ... 
    </span><span class="more">mehr</span></span>
</div>

这是 js fiddle 仅在 html 输出中单独显示标签。 https://jsfiddle.net/4hg547s4/