как использовать JSF Converter, если свойство не может быть однозначно идентифицировано - PullRequest
1 голос
/ 04 августа 2011

На моей странице JSF у меня есть <rich:autocomplete/>, который необходимо заполнить, выбрав объект из списка. id объекта не имеет полезного значения, поэтому я должен написать Converter, чтобы изменить его на читаемую строку.

К сожалению, строковое представление объекта не может однозначно идентифицировать различные объекты, и поэтому преобразование необратимо. Теперь я хочу знать, как я мог решить эту проблему? Можно ли сохранить id выбранного объекта в <h:inputHidden> и передать его компоненту поддержки области видимости?

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Вы используете входной компонент и преобразователь неправильно. Очевидно, вы используете строковое представление объекта (метку элемента) в качестве входного значения, в то время как вы должны использовать уникальный идентификатор объекта (значение элемента) в качестве входного значения. Конвертер предназначен только для преобразования между пользовательским объектом и уникальным идентификатором, а не между пользовательским объектом и строковым представлением.

0 голосов
/ 22 марта 2012

Я искал это, и до сих пор не существует прямого решения, предоставляемого rich: компонент, поскольку он не имеет itemValue, как rich: select

Также есть 2 обходных решения.*

чтобы использовать JavaScript для добавления значения id выбранного элемента в скрытое поле, а затем использовать это скрытое поле для идентификации выбранного элемента

Я использовал fetchValueатрибут concat item_id - item_name
, затем я создал конвертер, который подстроке item_id идентифицирует выбранный элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...