如何对ResourceBundle内容使用JSF导航规则

如何对ResourceBundle内容使用JSF导航规则,jsf,internationalization,Jsf,Internationalization,我有一个多语言网站,内容由ResourceBundles管理。如何使用JSF导航插入到使用段落内容的网站部分的链接 示例1:所需的HTML输出 <p>Simply <a href="contact.xhtml">contact us</a> to find out more.</p> 问题不完全在于JSF导航规则,而是不能使用将JSF组件指定为bundle参数,更不用说简单的HTML子项了。另外,请注意,您不能在中使用,而只能在中使用 无论如何,

我有一个多语言网站,内容由ResourceBundles管理。如何使用JSF导航插入到使用段落内容的网站部分的链接

示例1:所需的HTML输出

<p>Simply <a href="contact.xhtml">contact us</a> to find out more.</p>

问题不完全在于JSF导航规则,而是不能使用
将JSF组件指定为bundle参数,更不用说简单的HTML子项了。另外,请注意,您不能在
中使用
,而只能在
中使用

无论如何,为了实现功能需求,您必须自己用转义风格写下HTML作为

<h:outputFormat value="#{template['paragraph']}" escape="false">
    <f:param value="&lt;a href='#{request.contextPath}/contact.xhtml'&gt;#{template['contactUs']}&lt;/a&gt;" />
</h:outputFormat>
由于您不是第一个偶然发现这一点的人,而且解决方法也很笨拙,JSF实用程序库最近更新了其
组件,支持在未指定值时将子项编码为param值。从OmniFaces 1.5开始,您应该能够按如下方式使用它:

<h:outputFormat value="#{template['paragraph']}" escape="false">
    <o:param><h:link outcome="contact" value="#{template['contactUs']}" /></o:param>
</h:outputFormat>

问题不完全在于JSF导航规则,而是不能使用
将JSF组件指定为bundle参数,更不用说简单的HTML子项了。另外,请注意,您不能在
中使用
,而只能在
中使用

无论如何,为了实现功能需求,您必须自己用转义风格写下HTML作为

<h:outputFormat value="#{template['paragraph']}" escape="false">
    <f:param value="&lt;a href='#{request.contextPath}/contact.xhtml'&gt;#{template['contactUs']}&lt;/a&gt;" />
</h:outputFormat>
由于您不是第一个偶然发现这一点的人,而且解决方法也很笨拙,JSF实用程序库最近更新了其
组件,支持在未指定值时将子项编码为param值。从OmniFaces 1.5开始,您应该能够按如下方式使用它:

<h:outputFormat value="#{template['paragraph']}" escape="false">
    <o:param><h:link outcome="contact" value="#{template['contactUs']}" /></o:param>
</h:outputFormat>


这正是我所需要的,谢谢BalusC!如果链接转换器需要查询参数,它甚至会变得更加丑陋。这正是我所需要的,谢谢BalusC!如果链接的转换器需要查询参数,那么它甚至会变得更加丑陋。
<h:outputFormat value="#{template['paragraph']}" escape="false">
    <f:param value="&lt;a href='#{facesContext.application.viewHandler.getBookmarkableURL(facesContext, '/contact', null, false)}'&gt;#{template['contactUs']}&lt;/a&gt;" />
</h:outputFormat>
<h:outputFormat value="#{template['paragraph']}" escape="false">
    <o:param><h:link outcome="contact" value="#{template['contactUs']}" /></o:param>
</h:outputFormat>