如何将丰富的参数传递给isn的jsf?

我正在使用jsf来渲染我的html页面,我正在使用漂亮的资源包加载来将i18n添加到各个页面.我遇到的问题是,对于outputFormat,你不能传递任何“丰富”的参数.例如这个发送:

这是我最喜欢的search engine,你应该看看.

做这样的事情会很好:

 <h:outputFormat value="#{bundle.favItemLineWithParam}>
      <f:param>
           <h:outputFormat value="#{bundle.searchEngine}>
                <f:param>
                     <h:link value="http://google.com">
                </f:param>
           </h:outputFormat>
      </f:param>
 </h:outputFormat>

但是这是不允许的,似乎唯一的选择是使用支持bean或其他东西在java中呈现链接.有任何想法吗?

最佳答案 那是不可能的.您需要在bundle值中使用纯HTML并设置escape =“false”.

favItem = This is my favourite <a href="{1}">{0}</a>, you should check it out.

<h:outputFormat value="#{bundle.favItem}" escape="false">
    <f:param value="search engine" />
    <f:param value="http://google.com" />
</h:outputFormat>

更新:

从版本1.5开始,JSF实用程序库OmniFaces可以使用<o:param>

favItem = This is my favourite {0}, you should check it out.
searchEngine = search engine

<h:outputFormat value="#{bundle.favItem}" escape="false">
    <o:param><a href="http://google.com">#{bundle.searchEngine}</a></o:param>
</h:outputFormat>
点赞