我正在使用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>