编程语言
首页 > 编程语言> > 如何将标签插入java字符串[复制]

如何将标签插入java字符串[复制]

作者:互联网

参见英文答案 > Component to inject and interpret String with HTML code into JSF page                                    1个
我试图将换行标记插入到某些文本中并将其显示在网页上. <和>标志正被翻译成& lt;和& gt;并且标签在网页上显示为文本.

当我从数据库中选择它时,文本看起来像这样(我将它输出到SYSOUT):

version 12.4
service timestamps debug datetime
service timestamps log datetime
service password-encryption

然后我通过这个小过滤器运行它:

public DevConfigs getDevConfig() {

    String config = devConfig.getConfig();

    Pattern pattern = Pattern.compile(".$", Pattern.MULTILINE | Pattern.DOTALL);
    Matcher matcher = pattern.matcher(config);
    String newConfig = matcher.replaceAll("<br />");

    devConfig.setConfig(newConfig);
    return this.devConfig;
}

这是网页(它是使用facelets的Seam应用程序):

<rich:tab label="Config">
    hello<br />
    there<br />
    #{devConfig.config}
</rich:tab>

页面源代码如下:

hello<br />
there<br />
&lt;br /&gt;
&lt;br /&gt;

version 12.&lt;br /&gt;
service timestamps debug datetim&lt;br /&gt;
service timestamps log datetim&lt;br /&gt;
service password-encryptio&lt;br /&gt;
&lt;br /&gt;

如您所见,我的标签以HTML字符而非标签形式出现.在每行文本的末尾插入换行符标记需要做什么?

TDR

解决方法:

您需要禁用(默认)HTML转义文本.您可以使用h:outputText(或与之等效的任何RichFaces)并将escape属性设置为false来执行此操作.

<h:outputText value="#{bean.property}" escape="false" />

标签:java,regex,jsf,xhtml,facelets
来源: https://codeday.me/bug/20190726/1547060.html