首页 > 解决方案 > 如何在数据库中保存富文本?

问题描述

我正在创建一个屏幕,在第一个屏幕上将显示存储在本地数据库中的数据。在第二个屏幕上,用户可以编辑该数据,也可以粘贴富文本。我正在使用contenteditable div. 第三个屏幕将显示用户编辑的数据并将其存储在数据库中。我正在使用 Java 检索数据并将其存储在 db 中。目前我面临 2 个问题,1.我可以在我XSL的第二个屏幕上粘贴富文本,但它不会保留在第三个屏幕上,一切都变得像纯文本。2.我不知道如何在数据库中存储富文本并以相同的格式检索。我在这里附上我的 XSL 示例。如果您需要任何其他信息,请告诉我。提前致谢!

XSL 2nd Screen

<table border="0" cellspacing="1" cellpadding="1" class="graphtable">
    <tr>
        <xsl:choose>
            <xsl:when test="//faml/response/stresponsedto/security_tips">
                <xsl:for-each select="//faml/response/stresponsedto/security_tips/stdto">
                    <td>
                        <div class="carousel" contenteditable="true" id="post-text">
                            <xsl:value-of select="securitytips"/>
                        </div>
                    </td>
                </xsl:for-each>
            </xsl:when>
            <xsl:otherwise></xsl:otherwise>
        </xsl:choose>
    </tr>
    </table> 

XSL 3rd Screen

<table border="0" cellspacing="1" cellpadding="1" class="graphtable">
    <tr>
        <td class="headingalign" width="10%" >Security Tips</td>
    </tr>
    <tr>
        <td style="padding-right: 10px">
            <div class="carousel">
                <xsl:value-of select="//faml/request/fldsandt"/>
            </div>
        </td>
    </tr>
</table>

标签: javadatabasexsltrichtext

解决方案


如果您将“富文本”保存为 xhtml 格式的内容,您或许能够实现这一点。xhtml 是 html 也是格式良好的 xhtml。

如果您的内容是

<securitytips>
<p>some text with a <b>bold section</b> in it.</p>
</securitytips>

输出的价值,就像 XSL 中的这样

<xsl:value-of select="securitytips" />

只会给你文字

一些带有粗体部分的文本。

但是,如果您使用副本,您将获得整个元素,并保留标记,即:

<xsl:copy-of select="securitytips" />

会给你文字和标记

<p>some text with a <b>bold section</b> in it.</p>

这可能会变得很棘手,因为如果您的 html 格式不正确(例如标签未关闭),那么您将无法对其进行转换。


推荐阅读