<a:form> <h:outputLink value="javascript:void(0)" onclick="PF('dlg').show();" title="login"> <a:graphicImage name="/demo/images/login.png" /> </h:outputLink> <a:growl id="growl" sticky="true" showDetail="true" life="3000" /> <a:dialog header="Login" widgetVar="dlg" resizable="false"> <h:panelGrid columns="2" cellpadding="5"> <h:outputLabel for="username" value="Username:" /> <a:inputText id="username" value="#{userLoginView.username}" required="true" label="username" /> <h:outputLabel for="password" value="Password:" /> <a:password id="password" value="#{userLoginView.password}" required="true" label="password" /> <f:facet name="footer"> <a:commandButton value="Login" update="growl" actionListener="#{userLoginView.login}" oncomplete="handleLoginRequest(xhr, status, args)" /> </f:facet> </h:panelGrid> </a:dialog> </a:form> <script type="text/javascript"> function handleLoginRequest(xhr, status, args) { if(args.validationFailed || !args.loggedIn) { PF('dlg').jq.effect("shake", {times:5}, 100); } else { PF('dlg').hide(); $('#loginLink').fadeOut(); } } </script>
package com.jarch.showcase.view.overlay; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import org.primefaces.context.PrimeRequestContext; @ManagedBean public class UserLoginView { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public void login(ActionEvent event) { RequestContext context = RequestContext.getCurrentInstance(); FacesMessage message = null; boolean loggedIn = false; if(username != null && username.equals("admin") && password != null && password.equals("admin")) { loggedIn = true; message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", username); } else { loggedIn = false; message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "Invalid credentials"); } FacesContext.getCurrentInstance().addMessage(null, message); context.addCallbackParam("loggedIn", loggedIn); } }