JSF конвертер для f: param - PullRequest
       15

JSF конвертер для f: param

9 голосов
/ 14 октября 2011

Я использую динамически созданные ссылки:

          <h:link outcome="/page" value="#{name}">
            <f:param name="name" value="#{name}"/>
          </h:link>

Я хотел бы добавить собственный конвертер для f: param, чтобы удалить пробелы из # {name} и т. Д. Но в f: param нет свойства конвертера.

Ответы [ 2 ]

16 голосов
/ 14 октября 2011

A Converter предназначен для преобразования значений отправленных String параметров запроса в сложные объекты и наоборот в полях ввода.Однако <f:param> - это только чистый вывод, и он всегда будет вызывать toString() для значения.Он не поддерживает Converter.

. Самым чистым и лучшим вариантом для вас является создание пользовательской функции EL , так что в конечном итоге вы получите:

<f:param name="name" value="#{util:prettyUrl(name)}"/>

Обновление : в служебной библиотеке JSF OmniFaces начиная с версии 1.4 (март 2013 г.) имеется компонент <o:param>, расширяющий <f:param> с поддержкой полноценного конвертера JSFТочно так же, как вы использовали бы в <h:outputText converter>.

<h:link outcome="/page" value="#{name}">
    <o:param name="name" value="#{name}" converter="somePrettyURLConverter" />
</h:link>

См. также витрина .

1 голос
/ 14 октября 2011

что делать, если вы делаете что-то подобное?

<f:param name="name" value="#{name.replace(' ', '')}" />

Разве это не работает?

Или ты хочешь для всех

Привет

...