我正在使用Spring4 / JPA / JSoup / Ckeditor创建一个应用程序。
用户登录 - >打开一个页面 - >使用ckeditor输入文字 - >发布它(一种小博客)。
数据在mysql数据库中成功保存,例如:
<p><strong>Bold</p></strong>
<p><strong>Bold</p></strong>
为了正确行为,它应该显示为 - Bold
当我查看jsp页面的源代码时,保存在数据库中的html如下所示 输出来自
<p><strong>Bold</strong></p>
你能否帮我解决这个问题,我无法找到&lt;&gt;的转换位置到
< >
正在发生?
由于
答案 0 :(得分:3)
在jsp中添加以下代码
<c:out escapeXml="false" value="${ticket.body}" />
答案 1 :(得分:1)
您的问题是这些数据是使用转义的HTML。最常见的解决方案是使用apache-common-lang库。那么你只能通过这个来解读HTML:
StringEscapeUtils.unescapeHtml(retrivedDataFromDatabase)
为此你必须导入Apache Common:
import org.apache.commons.lang.StringEscapeUtils;
您可以从this链接下载它并将其添加到您的库中。
Here是StringEscpaeUtils的JavaDoc。
编辑: 并检查您是否在web.xml中注册 encodingFilter :
<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>
另一个解决方案 :(由@ user3367569提出最终解决方案 - 问题所有者)
插入JSP:
<c:out escapeXml="false" value="${ticket.body}" />