Spring security 从数据库检索的HTML看起来不正确

Spring security 从数据库检索的HTML看起来不正确,spring-security,ckeditor,jsoup,spring-4,Spring Security,Ckeditor,Jsoup,Spring 4,我正在使用Spring4/JPA/JSoup/Ckeditor创建一个应用程序 用户登录->打开页面->使用ckeditor输入文本->发布它(类似于一个小博客) 数据成功保存在mysql数据库中,例如: 用户在ckeditor中输入粗体文本,并将其另存为 粗体您的问题是这些数据都是转义HTML。最常见的解决方案是使用apache公共语言库。然后,您只能通过以下方式取消浏览HTML: StringEscapeUtils.unescapeHtml(retrivedDataFromDatabase

我正在使用Spring4/JPA/JSoup/Ckeditor创建一个应用程序

用户登录->打开页面->使用ckeditor输入文本->发布它(类似于一个小博客)

数据成功保存在mysql数据库中,例如:

  • 用户在ckeditor中输入粗体文本,并将其另存为

  • 粗体

    您的问题是这些数据都是转义HTML。最常见的解决方案是使用apache公共语言库。然后,您只能通过以下方式取消浏览HTML:

    StringEscapeUtils.unescapeHtml(retrivedDataFromDatabase)
    
    为此,您必须导入Apache Common:

    import org.apache.commons.lang.StringEscapeUtils;
    
    您可以从链接下载它并将其添加到库中

    是用于StringeSPaeutils的JavaDoc


    编辑: 并检查您是否在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> 
    
    
    编码滤波器
    org.springframework.web.filter.CharacterEncodingFilter
    编码
    UTF-8
    强制编码
    真的
    编码滤波器
    /*  
    

    另一个解决方案:(最终解决方案由@user3367569-问题所有者提供)

    在JSP中插入:

    在jsp中添加以下代码有效

    <c:out escapeXml="false" value="${ticket.body}" />
    
    
    
    我按如下方式尝试了
    @Lob@xmlement@JsonProperty public String getBody(){body=StringEscapeUtils.unescapethl4(body);return body;}public void setBody(String body){String cleanHTML=Jsoup.clean(body,Whitelist.basic());this.body=cleanHTML;}
    仍然不工作,我是否遗漏了什么?您仍然有转义的HTML标记?是的,转义的HTML标记和输出在源代码中是相同的?我知道它仍然是转义的,但是如果没有更改,这很奇怪。或者我我丢失了一些东西…:/是的,输出与以前一样,带有<和>标记,我确认html代码是以正确的方式从控制器返回的,它在之后的某个地方发生了更改,,,不确定是与编码相关的问题还是其他问题…您能告诉我调试它的方向吗?