воскресенье, 18 апреля 2010 г.

Перенаправление на другую страницу по событию на компоненте DropDown

В моем случае мне понадобилось перенаправление (redirect, или просто редирект) на другую страницу с передачей определенного параметра.
то есть со страницы:
www.sql99.ru
сразу же после выбора в списке значения, в данном случае региона на:
www.sql99.ru/test/faces/info/region.jsp?id=123

И так кидаем на страницу наш компонент:












Предположим, что данные для этого компонента уже определены через Bind to Data. В моем случае они беруться из таблицы region в БД PostgreSQL. О том как подключиться к БД и "прикрутить" данные к компоненту, я напишу позднее, а здесь оставлю ссылку.
Остается только щелкнуть правой кнопкой мыши по компоненту, выбрать Edit Event Handler
после этого добавляем код:

String page = "/test/faces/info/region.jsp?id=" + event.getNewValue().toString();
try {
FacesContext.getCurrentInstance().getExternalContext().redirect(page);
} catch (Exception e) {
error(e.getMessage());
}

Чтобы было понятнее, вот что получилось:







Для автоматического импорта нужных библиотек в IDE Netbeans можно просто нажать "Ctrl + Shift + I"
Вот собственно и все, теперь когда мы выбираем регион в выпадающем списке, то сразу же переходим к странице с данными об этом регионе.

П.С. от 24.05.2010.
Заметил, что, если использовать данный метод, то, в случае, если на странице расположена, к примеру таблица VW JSF, то сортировка в ней не работает, вместо этого происходит переход на страницу описанную в экшене DropDown'а. Скорее всего, объяснение этому есть, но мой опыт веб-программирования не позволяет мне объяснить данный факт. Возможно это происходит из-за стандартного метода, Auto-Submit on Change "webui.suntheme4_2.common.timeoutSubmitForm(this.form, 'gridPanel1:regionDropDown');" Надо будет попробовать, что-то типа такого "document.forms["myform"].submit();", возможно поможет.
А пока решить данную проблему получилось путем создания рядом кнопки подтверждающей выбор.

4 комментария:

  1. Аффтар жги ещо, у меня вместо Ctrl-Shift-I , Ctrl-Alt-F что мне теперь делать?

    ОтветитьУдалить
  2. Думаю надо обратно поменять местами кнопки на клаве ))
    А серьезно - Ctrl-Alt-F - это Format, а не Fix Import.

    ОтветитьУдалить
  3. У меня - фиксы, мне так удобнее

    ОтветитьУдалить