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

时间:2011-06-02 05:45:10

标签: jsf internationalization

我正在使用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中呈现链接。任何想法?

1 个答案:

答案 0 :(得分:2)

那是不可能的。您需要在捆绑值中使用纯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开始,可以使用<o:param>的JSF实用程序库OmniFaces

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>