|
|
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
Доброе! Пытаюсь создать форму редактирования и одно из значений это словарь который можно изменить в h:selectOneMenu. Не могу найти как установить selected уже выбранного пункта. Кто-нибудь подскажите или может надо использовать другой компонент для этих целей!? Код: html 1. 2. 3. 4. СПАСИБО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2011, 08:07:43 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
Николаха, То что у тебя будет указано в <h:selectOneMenu value="..." это и будет selected. PS: Не уверен что можно использовать одновременно f:selectItem и f:selectItems. Оно действительно работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 02:10:09 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
fixdevОно действительно работает? Оно действительно работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 11:39:18 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
Только учитывай что в value="#{typeContact.tcntId}" у тебя должен быть не String, а полноценный SelectItem ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 14:08:17 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
забыл никТолько учитывай что в value="#{typeContact.tcntId}" у тебя должен быть не String, а полноценный SelectItem Это еще почему? Значение в value может иметь тот же тип, что и элементы selectItems. В качестве небольшого примера... Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 15:14:12 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
Чутка наврал, со стрингом будет работать, просто потому что у него метод toString() выводит саму эту строку. В общем случае, с объектом проихвольного типа так делать нельзя. Еще присмотрелся к коду - сразу не заметил Код: html 1. 2. 3. 4. 1) h:selectOneMenu id="tcntId" value="#{typeContact.tcntId}" ---- вот тут должен быть SelectItem, сконструированный на основе typeContact 2) <f:selectItems var="typeContact" value="#{typeContacts}" itemLabel="#{typeContact.tcntName}" itemValue="#{typeContact}"/> ----- тут вообще мешанина, в value идет - список контактов, в качестве itemLabel - почему-то передается уже typeContact.tcntName, а itemValue - вообще кастомный объект. В общем как надо сделать. 1) Сделать бин, в нем ввести 2 поля - текущий контакт(selectItem), и список контактов list<SelectItem>. 2) В момент когда значение изменено должен вызываться propertyChangeListener, который устанавливает текущий селектитем в тот, что пришел от клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 15:35:46 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
забыл никЧутка наврал, со стрингом будет работать, просто потому что у него метод toString() выводит саму эту строку. В общем случае, с объектом проихвольного типа так делать нельзя. Еще присмотрелся к коду - сразу не заметил Код: html 1. 2. 3. 4. 1) h:selectOneMenu id="tcntId" value="#{typeContact.tcntId}" ---- вот тут должен быть SelectItem, сконструированный на основе typeContact 2) <f:selectItems var="typeContact" value="#{typeContacts}" itemLabel="#{typeContact.tcntName}" itemValue="#{typeContact}"/> ----- тут вообще мешанина, в value идет - список контактов, в качестве itemLabel - почему-то передается уже typeContact.tcntName, а itemValue - вообще кастомный объект. В общем как надо сделать. 1) Сделать бин, в нем ввести 2 поля - текущий контакт(selectItem), и список контактов list<SelectItem>. 2) В момент когда значение изменено должен вызываться propertyChangeListener, который устанавливает текущий селектитем в тот, что пришел от клиента. На 1) вроде не должен быть SelectItem. Я делал что h:selectOneMenu id="tcntId" value="#{typeContact.tcntId}" typeContact - Это persistence класс и если делаешь на нем сабмит все прекрасно присваивается в #{typeContact.tcntId}. На 2) тут мешанина!? 0_О Вроде все тут ясно! Вот тут то value="#{typeContacts}" и есть List<SelectItem>. Как я понял JSF делает какие-то конвертеры по умолчанию! Вот как я заполнял #{typeContacts} Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. А вообщем я разобрался с вопросом. Если указать так value="#{typeContact.tcntId}" и перед выводом на страницу в самом флоу например получить объект typeContact, то когда этот селект h:selectOneMenu будет генерироваться то он сам сопоставит его с элементом в typeContacts который List<SelectItem> вот и всё!!! СПАСИБО всем за то что не молчали!!! =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 18:23:35 |
|
||
|
h:selectOneMenu Как сделать selected нужный пункт!?
|
|||
|---|---|---|---|
|
#18+
Кстати propertyChangeListener наверное лучше использовать не для самого него, а для reRender других компонентов которые зависят от его значения! <a4j:support> demo page ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2011, 18:30:22 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=319&tid=2132972]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 375ms |
| total: | 537ms |

| 0 / 0 |
