ValueChangeEvent не запускается при возврате значений - PullRequest
1 голос
/ 25 июля 2011

На моей странице jsf у меня есть поле ввода текста и скрытое поле. У меня есть кнопка редактирования, и после нажатия кнопки редактирования появляется всплывающее окно, и я выбираю значение, и выбранное значение возвращается обратно в мое скрытое поле.

Я добавил valueChangeListener в свое скрытое поле и добавил следующий код в свой bean-компонент.

public void processChange(ValueChangeEvent event){        
    try  {           
        logger.info("event new value "+event.getNewValue().toString());

    } catch (Exception ex)  {                        
    } 

Однако каждый раз, когда я изменяю значение с помощью всплывающего окна редактирования и возвращает значение обратно в мое скрытое поле, я думаю, valueChangeListener не запускается.

Есть идеи, почему valueChangeListener не запускается? Моя область страницы - сессия и использует JSF 1.1.

Идея, лежащая в основе этого подхода, заключается в повторном запросе и на основе значений из всплывающего окна. Я хотел бы обновить данные на странице JSF.

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Вы должны отправить форму. Добавьте атрибут onchage в тег, который вызывает JavaScript, который отправляет форму. Пока форма не будет отправлена, значение changeevent вызываться не будет.

1 голос
/ 25 июля 2011

Вы не должны сначала поймать самое исключение суперкласса, особенно без регистрации чего-либо. Возможно, ваш объект из event.getNewValue () имеет значение null, тогда вы получите исключение NullPointerException, и вас об этом не заметят.

Используйте что-то подобное:

public void processChange(ValueChangeEvent event){        
try  {           
    logger.info("event new value "+event.getNewValue().toString());

} catch (NullPointerException ex)  { 
     logger.error("object is null: "+ex.getMessage());              
} catch (Exception ex)  { 
     logger.error(ex);              
} 

http://download.oracle.com/javase/tutorial/essential/exceptions/index.html

...