【问题标题】:How do I use j2html without rendering everything如何在不渲染所有内容的情况下使用 j2html
【发布时间】:2017-11-22 15:59:58
【问题描述】:

我正在将我的 html 呈现代码转换为使用 j2html。虽然我喜欢这个库,但一次转换所有代码对我来说并不容易,所以有时我可能会将外部 html 转换为使用 j2html,但不能同时将内部 html 转换为 j2html。所以我希望 j2html 能够接受传递给它的文本,因为它已经渲染了,但它总是重新渲染它

System.out.println(p("<b>the bridge</b>"));

返回

<p>&lt;b&gt;the bridge&lt;/b&gt;</p>

有没有办法让它输出

<p><b>the bridge</b></p>

完整的测试用例

import j2html.tags.Text;

import static j2html.TagCreator.b;
import static j2html.TagCreator.p;

public class HtmlTest
{
    public static void main(String[] args)
    {
        System.out.println(p(b("the bridge")));
        System.out.println(p("<b>the bridge</b>"));
    }

}

【问题讨论】:

    标签: java html j2html


    【解决方案1】:
    import static j2html.TagCreator.b;
    import static j2html.TagCreator.p;
    import static j2html.TagCreator.rawHtml;
    
    
    public class HtmlTest
    {
        public static void main(String[] args)
        {
            System.out.println(p(b("the bridge")));
            System.out.println(p(rawHtml("<b>the bridge</b>")));
        }
    
    }
    

    结果:

    <p><b>the bridge</b></p>
    <p><b>the bridge</b></p>
    

    【讨论】:

    • 这可能是一条通往正确答案的路线,但您已经忽略了它被包裹在一个段落中,所以无法分辨。
    • 从来没有见过,我认为问题是这个项目没有javadoc(有吗?)所以我只是依靠例子,非常感谢。
    • @PaulTaylor 我查看了其中的代码 (TagCreator.java)。我就是这样找到它的。我不确定它是否在文档中。
    【解决方案2】:

    在 j2html 1.1.0 中,您可以通过编写禁用文本转义

    Config.textEscaper = text -> text;
    

    但要小心..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-17
      • 2022-08-19
      • 2018-09-19
      • 2020-09-18
      • 2020-10-05
      • 1970-01-01
      • 2017-09-06
      • 2021-09-22
      相关资源
      最近更新 更多