[PrimeFaces] Redirection et <p:growl>
Bonjour tout le monde ;)
j'ai tester un exemple de prime faces .une interface d'authentification qui vous redirige vers la page Menu.jfs et qui vous dit welcome +username si authentification réussie sinon vous rester sur la même page.
remarque au niveau de mon bean <p:growl> peut avoir deux cas possible selon le message attaché
soit <p:grwol> avec un message d'erreur de saisie de mon de passe
soit<p:grwol>avec un mesage qui dit welcome +username ce dirnier c'est mon probleme il ne figure pas lorsque je suis rediriger vers l'autre page !!!
vouici mon bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
public class LoginBean {
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 actionEvent) {
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage msg = null;
boolean loggedIn = false;
if(username != null && username.equals("admin") && password != null && password.equals("admin")) {
loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", username);
} else {
loggedIn = false;
msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "Invalid credentials");
}
FacesContext.getCurrentInstance().addMessage(null, msg);
context.addCallbackParam("loggedIn", loggedIn);
}
} |
la page principale login.jsf
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<h:head>
<script type="text/javascript">
function handleLoginRequest(xhr, status, args) {
if(args.validationFailed || !args.loggedIn) {
jQuery('#dialog').effect("shake", { times:3 }, 100);
} else {
dlg.hide();
jQuery('#loginLink').fadeOut();
window.location = "Menu.jsf";
}
}
</script>
</h:head>
<h:body>
<h:outputLink id="loginLink" value="javascript:void(0)" onclick="dlg.show()" title="login">
<p:graphicImage value="/image/login.png" />
</h:outputLink>
<p:growl id="growl" showDetail="true" life="3000" />
<p:dialog id="dialog" header="Login" widgetVar="dlg">
<h:form>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="username" value="Username:" />
<p:inputText value="#{loginBean.username}"
id="username" required="true" label="username" />
<h:outputLabel for="password" value="Password:" />
<h:inputSecret value="#{loginBean.password}"
id="password" required="true" label="password" />
<f:facet name="footer">
<p:commandButton id="loginButton" value="Login" update=":growl"
actionListener="#{loginBean.login}"
oncomplete="handleLoginRequest(xhr, status, args)"/>
</f:facet>
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
</html> |
maintenant c'est au niveau de cette page Menu.jsf que j’aimerais bien avoir un message
pour dire bonjour au utilisateur + son nom !!
Code:
1 2 3 4 5 6 7
|
<h:head></h:head>
<h:body>
<h1>Bonjour </h1>
<p:growl id="growl" showDetail="true" life="3000" redisplay="true"/>
</h:body>
</html> |