Java Magnolia富文本字段

Java Magnolia富文本字段,java,magnolia,Java,Magnolia,我正在考虑将Magnolia中的富文本直接输出到前端。我将字段定义如下: @TabFactory("Content") public void contentTab(UiConfig cfg, TabBuilder tab) { tab.fields( cfg.fields.text("title").label("Title"), cfg.fields.richText("subtitle").label("Subtitle")

我正在考虑将Magnolia中的富文本直接输出到前端。我将字段定义如下:

@TabFactory("Content")
public void contentTab(UiConfig cfg, TabBuilder tab) {
    tab.fields(
            cfg.fields.text("title").label("Title"),
            cfg.fields.richText("subtitle").label("Subtitle")
    );
}
在模板中,当信息保存到JCR中时,它似乎使用HTML实体对数据进行编码:

Title: ${content.title}
Subtitle: ${content.subtitle}
输出(原始源)

但是应该输出(原始源)

Title:标题字段
副标题:副标题字段


有没有办法阻止富文本字段被自动编码?

大多数框架都试图消除这种类型的攻击,因此使用模板是一种很好的方法,如下所示:

Title: ${content.title}
Subtitle: <p>${content.subtitle}</p>
[#if content.text?has_content]
    ${cmsfn.decode(content).text}
[/#if]

TL.DR:尽量避免在动态内容中使用html字符,但该功能可以关闭。

解码功能工作:


谢谢-但是我没有使用组件,我使用的是这个特定项目的页面属性。关于如何处理属性的任何想法(使用上面的tabs项)好吧,显然它会工作,但这并不会停止编码。是的,我想找到一个更好的方法,这就是输出html的标准Magnolia方法。
Title: ${content.title}
Subtitle: <p>${content.subtitle}</p>
[#if content.text?has_content]
    ${cmsfn.decode(content).text}
[/#if]
[#if content.text?has_content]
    ${cmsfn.decode(content).text}
[/#if]