‹p:командная кнопка› не работает

я новичок в JSF и Primefaces .. я написал небольшой код ... я получаю то, что хочу сделать с «h: commandbutton», но то же самое не работает с «p: commandbutton». есть ли разница между функциональностью этих двух вещей.

<h:commandButton value= "enter" actionListener= "#{newJSFManagedBean.show()}"/><br/>
<p:commandButton value= "enter" actionListener= "#{newJSFManagedBean.show()}"/><br/>

я пробовал много вещей, но newjsfmanagedbean.show() не вызывался из p: commandbutton, но h: commandbutton работает нормально. какова причина :-( ?


person hina abbasi    schedule 12.03.2014    source источник
comment
Он должен быть внутри формы.   -  person Ioan    schedule 12.03.2014
comment
это внутри h:form .   -  person hina abbasi    schedule 13.03.2014
comment
Затем покажите нам весь код (html + поддерживающий компонент)   -  person Ioan    schedule 13.03.2014
comment
Попробуйте с действием вместо actionListener. Вы также можете попробовать ajax=false.   -  person leostiw    schedule 13.03.2014
comment
Не могли бы вы также поделиться своей функцией show()?   -  person Maozturk    schedule 13.03.2014


Ответы (3)


Вы не поделились своей функцией show(), но я могу предположить, что она выглядит так:

public void show(ActionEvent event) {
    // some stuff here
}

Что ж, просто удалите скобки в вашем языке EL, если вы хотите использовать его с простыми лицами:

<p:commandButton value= "enter" actionListener= "#{newJSFManagedBean.show}"/>

В противном случае он ищет метод show, который не имеет параметров.

person Maozturk    schedule 13.03.2014

*привет, сработало :-) * спасибо xmates

<p:commandButton process="@this" value= "enter"  ajax="false" actionListener= "#{newJSFManagedBean.show}" /><br/>
person hina abbasi    schedule 14.03.2014

Вы должны добавить process="@this" к p:commandButton, чтобы вызвать его действие. Если вы хотите обработать любые другие компоненты, добавьте process="@this,id1,id2" вот так.

Надеюсь это поможет

person Srikanth Ganji    schedule 12.03.2014