Как передать богатые параметры в jsf для i18n? - PullRequest
4 голосов
/ 02 июня 2011

Я использую jsf для рендеринга моих html-страниц, и я использую отличную загрузку пакета ресурсов, чтобы добавить i18n на различные страницы. Проблема, с которой я сталкиваюсь, заключается в том, что с помощью outputFormat вы не можете передавать какие-либо «богатые» параметры. Например, эта отправка:

Это моя любимая поисковая система , вы должны проверить это.

Было бы неплохо сделать что-то вроде этого:

 <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>

но это недопустимо. Казалось бы, единственный вариант - визуализировать ссылки в java с компонентом поддержки или чем-то еще. Есть идеи?

1 Ответ

2 голосов
/ 02 июня 2011

Это невозможно. Вам нужно использовать обычный 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...