Вопрос по java, selectonemenu, ajax, managed-bean, jsf – SelectOneMenu обновляет другие SelectOneMenu

6

Я хочу обновить второе SelectOneMenu, когда я выбираю любой элемент первого SelectOnMenu. Как и сейчас, я получаю значения для SelectOneMenus из ManagedBean. Я предполагаю, что я'использовать AJAX (jquery) для отправки параметров в ManagedBean.


    
        
            ...
            
            
                
            

                
            
                
            
            ...
        
        ...
    

Ваш Ответ

2   ответа
0

Primefaces имеет отличную особенность того, что вы пытаетесь достичь. Он уже использует Ajax, так что неНе нужно беспокоиться о написании кода самостоятельно.

Могу ли я использовать <F: Ajax> несерьезные главные лица? Как я могу отправить параметры в бин? thomas.st
9

На самом деле вы можете использовать ValueChangeListener, который вызывается при изменении значения вашего selectOneMenu:


    

Затем в вашем бине у вас есть этот метод:

public void selectOneMenuListener(ValueChangeEvent event) {
    //This will return you the newly selected
    //value as an object. You'll have to cast it.
    Object newValue = event.getNewValue(); 
    //The rest of your processing logic goes here...
}

Для обновления страницы вы можете добавитьonchange="submit()" на ваш, Для некоторого частичного рендеринга вы можете попробовать добавить это вместо :onchange="submit()"


    
    

Если я'я не ошибаюсьЯ хочу получить идентификатор элемента, выбранного в первом меню, и заполнить второе в соответствии с ним. Затем вы можете отобразить другое selectOneMenu или, если необходимо, панель, обертывающую часть вашей формы.

Можете ли вы развить ваш контекст немного дальше? Что вы пытаетесь достичь и / или какие ограничения у вас есть? Fritz
@ user1586660 Извините за задержку, но яЯ рад, что ты должен решить это :). То, что вы сделали, это именно то, о чем я говорил (возможно, я не дал понять с самого начала, и я прошу прощения за это). Fritz
Проблема в том, что в фоновом режиме есть база данных. Если я установлю идентификатор на значение по умолчанию и кто-то изменит базу данных, программа победитбольше не работает, и во втором меню SelectOneMenu больше нет элементов. Категории (1st SelectOneMenu) отображаются отлично, но яве к>изменить < значение 1-го SelectOneMenu, чтобы получить значения для 2-го. Информация: 1 категория имеет больше семинаров thomas.st
Есть ли возможность отправить параметр без changeListener? thomas.st

Похожие вопросы