Search code examples
javajsfrichfacespopuppanel

close richfaces popupPanel if method call has certain outcome


I'm trying to get build a simple Login Panel. The Panel is a rich:popupPanel. When the "Login" link/button is clicked I want the Panel to stay open if the login was unsuccessfull (due to wrong username/password, Database errors ... what ever). But the Panel should close if the login was successfull.

My best attempt looks like this, but the "oncomplete" value can not be parsed

<a4j:commandButton value="login" oncomplete="if (#{userController.login()}) #{rich:component('loginPanel')}.hide()"/>

How do I get that behavior from the popupPanel?


Solution

  • You should use action property to invoke login method on your bean. The loginSuccess is a property indicating if login was successfull or not.

    <a4j:commandButton value="login" action="#{userController.login}" oncomplete="if (#{userController.loginSuccess}) #{rich:component('loginPanel')}.hide()"/>