Нужен ли для этого специальный конвертер? - PullRequest
0 голосов
/ 07 января 2012

При просмотре исходного кода, который делает этот код, он выглядит так: itemValue генерирует значение на основе метода toString() объектов.Так что bean.question.categories не может быть массивом, содержащим категории .... по крайней мере, это не работает.Нужно ли мне сделать свой собственный конвертер, чтобы это работало?

<h:selectManyMenu value="#{bean.question.categories}" id="questionCategories">
    <f:selectItems value="#{categoryValuesManager.categories}" var="category"
                   itemValue="#{category}" itemLabel="#{category.description}"/>
</h:selectManyMenu>

Сущность вопроса также имеет двунаправленное отношение «многие ко многим» с сущностью категории, и это дает мне преимущество!Так как;при создании нового экземпляра вопроса свойство categories этого экземпляра имеет значение null, верно?Поэтому мне нужно присвоить ему пустую ArrayList<Category>.Затем, нужно ли зацикливаться на каждом элементе в этом массиве и назначать массив с одним экземпляром вопроса на стороне категории?

1 Ответ

0 голосов
/ 07 января 2012

Нужно ли мне сделать свой собственный конвертер, чтобы это работало?

Я думаю, вы должны создать свой собственный Converter. JSF не может автоматически преобразовать строку в ваш Entity объект.

Нужно ли зацикливаться на каждом элементе в этом массиве и назначать массиву с одним экземпляром вопроса на стороне категории?

Если вы успешно создали Converter, который может преобразовать вход String в соответствующий объект Category, ваш <h:selectManyMenu> даст вам List<Category>. Тогда я думаю, что вы можете присвоить его непосредственно свойству categories вопроса. Вам все равно придется перебирать свой список categories, чтобы связать сущность Question с каждым из них.

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