gpt4 book ai didi

html - jsf 消息 : adding link

转载 作者:搜寻专家 更新时间:2023-10-31 23:15:04 24 4
gpt4 key购买 nike

目前在 JSF 中,消息(rich:messages 标记)中包含的所有 HTML 都被转义并仅显示为标记。例如,在我的支持 bean 中,我有:

createMessage("Title created successfully with product number: <a href=\"http://www.example.com\">" + product.getProductNumber() + "</a>.");

其中 createMessage() 只是一个辅助函数,它向 faces 上下文添加一个新消息,然后可以在我的 rich:messages 标签中查看。

当这条消息被创建时,我的消息只是用转义的 HTML 显示:

Title created successfully with product number: <a href="http://www.example.com">1234</a>.

有什么方法可以避免这种情况,而只是在消息中提供一个实际链接吗?

提前致谢

~扎克

最佳答案

一个快速的解决方案是创建一个新的渲染器。

我为 h:messages 做了这个,因为我想将不同严重性的消息分成单独的 div。如果您不想使用默认渲染器,那么这是一个不错的选择。

您将覆盖/扩展的标准类是:

public class MessagesRenderer extends HtmlBasicRenderer

您只需使用不对文本进行转义的 ResponseWriter。具体类是转义文本的 HtmlResponseWriter。你可以扩展它并覆盖

public void writeText(Object text, String componentPropertyName)

这样它就不会使用 HtmlUtils。

然后只需将新渲染器添加到 faces-config.xml

<render-kit>
<renderer>
<component-family>javax.faces.Messages</component-family>
<renderer-type>javax.faces.Messages</renderer-type>
<renderer-class>com.mypackage.MessagesRenderer</renderer-class>
</renderer>
</render-kit>

关于html - jsf 消息 : adding link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com