| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > selectOneMenu change |
| Автор: 4epT 4.10.2010, 00:51 | ||||
Добрый вечер! Есть БД, в ней 2 таблицы Страны и Города (связь я думаю понятна, в каждый город может принадлежать только однйо стране. связь идет по ИД). С базой работаю через Hibernate. Описаны 2 класса country и city, также написан Bean в котором 2 метода:
и есть страница, в которой 2 комбобокса. хочу что бы при выборе страны во второй комбо бокс выводились города) подскажите что я не так делаю? вот страница:
в бине есть поле selected оно не изменяется при выборе какой либо страны( оно всегда null |
| Автор: iluvatar 4.10.2010, 14:17 |
| Я не силен в JSF, но насколько я понимаю, тут только аякс. Если он встроен в этот компонент, то проблема мэппинга. Если не встроен, то писать ручками. |
| Автор: 4epT 4.10.2010, 16:56 |
| А может кто то объяснить как правильно это делать? Можно без кусков кода, но по шагам простым языком) буду очень признателен!)) |
| Автор: m0zg 4.10.2010, 17:47 | ||
Если писать самому не хочется, можно заюзать a4j. Будет примерно так:
Также, в a4j:support можно параметры какие-нибудь передать, action или actionListner повесить, ну много чего. Хотя, если юзаешь JSF 2, то можно обойтись и без a4j. |
| Автор: 4epT 4.10.2010, 20:01 | ||||
насколько я понимаю, если вешать actionListener то это уже будет не ajax ? а можно это сделать без использования a4j ? |
| Автор: iluvatar 5.10.2010, 10:53 |
| Могу написать как вообще должно работать. Есть два селекта - с выбором страны и города. 1. На первый вешаем событие onchange, в нем шлем ajax-запрос на сервер по адресу "/getCity?country=" и прибавляем значение из select'a. Все это пишется на клиенте на JavaScript 2. Сервлет должен сделать запрос к БД, и вернуть результат в виде xml или json. 3. На клиенте на прием ответа ставим ф-цию, которая парсит ответ сервера и если все прошло удачно - очищает и заполняет второй селект полученными данными. Рекомендую использовать jquery. |
| Автор: m0zg 5.10.2010, 11:42 | ||||||
Можно. Выше написали уже Или, если JSF 2.0, то почитай про <f:ajax /> |
| Автор: 4epT 5.10.2010, 16:24 |
| Насчет JavaScript, я понимаю что так можно сделать) но поставил себе задачу именно JSF 2.0 + Hibernate ... насчет <f:ajax почитаю) буду пробовать ... спасибо! |