2015-05-14 3 views
0

Я использую JSF 2.2/PrimeFaces 5.1. У меня есть кнопка команды, которая выполняет поиск и добавляет сообщение лиц.p: commandButton метод действия, вызываемый несколько раз одним щелчком мыши

XHTML:

<p:commandButton id="search" value="Search" 
    update="emptyId,empAtendanceTable,msgDialog" 
    action="#{attendanceBean.buttonAction(actionEvent)}" /> 

Bean:

public void buttonAction(ActionEvent actionEvent) { 
    if (fromDate.after(todate)) { 
     addMessage("To date cannot be after from date"); 
    } 
} 

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

enter image description here

Как это вызвано и как я могу решить эту проблему? Метод действия должен быть вызван только один раз.

+2

http://stackoverflow.com/help/mcve было бы полезно. Я предполагаю, что в дереве компонентов есть что-то подозрительное. Например. используя 'binding' на слишком широком компоненте и/или программно вместо декларативно составляющих компонентов. – BalusC

+0

Спасибо за ссылку. В следующий раз я перейду по ссылке для вопросов. В моем случае в p: commandbutton, если я даю событие действия в bean для проверки, он срабатывает только модально с сообщением, но таблица данных не отображается. В противном случае if Я перехожу к нормальной функции String в событии кнопки, тогда она отображает таблицу данных, но не модальное сообщение. Как решить эту проблему. Для этого многократного сообщения времени сообщение было получено в getter thats problem.I удалило его однократное сообщение. – ShivaShankar

+0

Э? Диалог здесь не проблема. Проблема заключается в том, что метод действия, вызываемый несколько раз, является проблемой. Вам нужно исправить эту проблему при вызове метода действия несколько раз. Тогда (побочные) эффекты этой проблемы исчезнут сами по себе. Опять же, пожалуйста, предоставьте MCVE. – BalusC

ответ

0

Теперь модальное диалоговое окно отображает сообщение только один раз. Проблема в том, что я поставил валидацию в getter. Я удалил в getter свою работу.

Смежные вопросы