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