想要在我的 GWT 应用程序 (Java 7) 中为每个 http/https 超链接添加锚 html 标记

Want to add anchor html tag for each http/https hyperlinks in my GWT application (Java 7)

本文关键字:http https 超链接 标记 html 添加 GWT 我的 应用程序 Java      更新时间:2023-09-26

在GWT应用程序(使用Java 7(中,我想为字符串变量中的每个http/https链接添加锚html标签。

它在嵌入模式下工作,但在生产环境中不起作用。

private String clearTextContent(String txt) {
    txt = txt.replaceAll("<", "&lt;");
    txt = txt.replaceAll(">", "&gt;");
    txt = txt.replaceAll("'n", "");
    txt = txt.replaceAll("''|", "<br/>");
    // Display Link for URLs
    txt = txt.replaceAll("(''A|''s)((http|https|ftp|mailto):''S+)(''s|''z)", "$1<a target='_blank' href='$2'>$2</a>$4"); 
}

我也试过这个,但不起作用:

    String URLregexp = "(^|''s)((http|https):''S+)(''s|$)";
    txt = txt.replaceAll(URLregexp, "$1<a target='_blank' href='$2'>$2</a>$4");

我想要的例子:

输入:

Hello|http:///www.google.com|... That's it!

输出:

Hello|<a target='_blank' href='http:///www.google.com'>http:///www.google.com</a>|... That's it!

我已经读到在嵌入模式下GWT使用javascript正则表达式,而在生产中使用java正则表达式。

您有解决我问题的提示吗?

谢谢!

如果你想在小部件中嵌入HTML,并不是所有的widget都能做到这一点,因为>或<和&amp;将被它们的ASCII对应物取代。您需要使用>

您可以通过多种方式生成 SafeHtml,并将其放入小部件中。例如使用

SafeHtml safeHtml = SafeHtmlUtils.fromString(myCodeAsString);
htmlBlock.setHtml(safeHtml);

因此,请检查您的 String 变量显示的是哪种小部件,并在必要时切换到另一个小部件。