我正在使用Spring4/JPA/JSoup/Ckeditor创建一个应用程序。
用户登录->打开页面->使用ckeditor输入文本->发布它(类似于一个小型博客)。
数据被成功地保存在mysql数据库中,例如:
<p><strong>Bold</p></strong>
<p><strong>Bold</p></strong>
为了获得正确的行为,它应该显示为- Bold。
当我查看jsp页面的源代码时,保存在数据库中的html显示在那里,如下所示
<p><strong>Bold</strong></p>
请你帮我解决这个问题,我找不到<>在哪里转换成
< >
正在发生什么?
谢谢
发布于 2016-07-31 21:26:59
在jsp中添加下面的代码是有效的
<c:out escapeXml="false" value="${ticket.body}" />
发布于 2016-07-30 01:22:56
您的问题是,这些数据使用的是转义HTML。最常见的解决方案是使用apache-公共-lang库。然后,您只通过以下方式取消HTML转义:
StringEscapeUtils.unescapeHtml(retrivedDataFromDatabase)
为此,您必须导入:
import org.apache.commons.lang.StringEscapeUtils;
您可以从这链接下载并将其添加到库中。
这里是JavaDoc for StringEscpaeUtils。
编辑:并检查是否在encodingFilter中注册了web.xml:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
另一个解决方案:(和最终解决方案由@ owner 3367569-所有者的问题)
插入JSP:<c:out escapeXml="false" value="${ticket.body}" />
https://stackoverflow.com/questions/38672236
复制相似问题