Hallo,
ich habe mir ein LoginBean - Tutorial angesehen. Dieses habe ich nun auch nachgebaut. Als Framework nutze ich Primefaces 5 und Primefaces-Mobile 1.0
Die Loginmaske klappt problemlos. Auch das registrieren. Allerdings kann ich mich nicht mehr ausloggen. Das hat schonmal geklappt, aber irgendwie will es nicht mehr.
Ich muss dazu sagen, dass dies meine Anfänge in dem Bereich sind.. Hier mal die verwendeten Klassen/xhtml
Login:
Welcome
und das LoginBean:
Es gibt weder eine Exception noch sonst irgendeine reaktion. Es kommt ganz kurz der Ajax spinner und das wars. Das Bean scheint da zu sein, da ich Benutzername und Passwort auslesen und auf der Seite anzeigen kann.
Habe ich etwas übersehen ?
ich habe mir ein LoginBean - Tutorial angesehen. Dieses habe ich nun auch nachgebaut. Als Framework nutze ich Primefaces 5 und Primefaces-Mobile 1.0
Die Loginmaske klappt problemlos. Auch das registrieren. Allerdings kann ich mich nicht mehr ausloggen. Das hat schonmal geklappt, aber irgendwie will es nicht mehr.
Ich muss dazu sagen, dass dies meine Anfänge in dem Bereich sind.. Hier mal die verwendeten Klassen/xhtml
Login:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:pm="http://primefaces.org/mobile">
<h:head>
<title>Login</title>
<h:outputStylesheet name="style.css" />
</h:head>
<h:body>
<pm:page>
<h:form id="loginform">
<p:growl id="msg" showDetail="true" life="9000" />
<p:panel header="Login" id="loginHeader">
<p:panelGrid id="loginPanel" styleClass="loginGrid">
<h:outputText value="Benutzername" />
<p:inputText id="username" value="#{loginBean.username}"
required="true"
requiredMessage="Der Benutzername ist ein Pflichtfeld."
styleClass="loginGridUsername" />
<p:message for="username" />
<h:outputText value="Passwort" />
<p:password id="password" value="#{loginBean.password}"
feedback="false" required="true"
requiredMessage="Das Passwort ist ein Pflichtfeld." />
<p:message for="password" />
<p:spacer />
<p:commandButton id="button" value="Einloggen"
action="#{loginBean.doLogin}" update="msg" />
<p:spacer />
<p:commandButton id="register" action="#{loginBean.doRegister()}"
value="registrieren" />
</p:panelGrid>
</p:panel>
</h:form>
</pm:page>
</h:body>
</html>
Welcome
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:pm="http://primefaces.org/mobile"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">
<h:head>
<h:outputStylesheet name="style.css" />
</h:head>
<h:body>
<pm:page id="navi">
<pm:header title="Hallo #{loginBean.username} - Herzlich willkommen" swatch="b" id="logOutHeader">
<p:commandButton value="Logout" action="#{loginBean.doLogout()}"
id="logoutButton"/>
</pm:header>
<p:panel header="Menü" id="menuPanel">
<p:menu>
<p:submenu label="Transaktionen">
<p:menuitem value="Alle anzeigen"
outcome="pm:allTransactions?transition=flip" />
</p:submenu>
<p:submenu label="Gruppen">
<p:menuitem value="Alle anzeigen"
outcome="pm:allGroups?transition=flip" />
</p:submenu>
<p:submenu label="Kategorien">
<p:menuitem value="Alle anzeigen"
outcome="pm:allCategories?transition=flip" />
</p:submenu>
<p:submenu label="Statistik">
<p:menuitem value="Alle anzeigen"
outcome="pm:statistik?transition=flip" />
</p:submenu>
</p:menu>
</p:panel>
</pm:page>
<pm:page id="allTransactions">
<pm:header title="Alle Transaktionen" swatch="b" id="logOutHeaderTransaction">
<p:button outcome="pm:navi?transition=flip" value="Zurück" id="backButtonTransaction" styleClass="button"/>
<p:commandButton id="addTransactionButton" value="Hinzufügen" styleClass="button"/>
</pm:header>
</pm:page>
<pm:page id="allGroups">
<pm:header title="Alle Gruppen" swatch="b" id="logOutHeaderGroup">
<p:button outcome="pm:navi?transition=flip" value="Zurück" id="backButtonGroup" styleClass="button"/>
<p:commandButton id="addGroupButton" value="Hinzufügen" styleClass="button"/>
</pm:header>
</pm:page>
<pm:page id="allCategories">
<pm:header title="Alle Kategorien" swatch="b" id="logOutHeaderCategorie">
<p:button outcome="pm:navi?transition=flip" value="Zurück" id="backButtonCategorie" styleClass="button"/>
<p:commandButton id="addCategorieButton" value="Hinzufügen" styleClass="button"/>
</pm:header>
</pm:page>
<pm:page id="statistik">
<pm:header title="Statistik" swatch="b" id="logOutHeaderStatistik">
<p:button outcome="pm:navi?transition=flip" value="Zurück" id="backButtonStatistik" styleClass="button"/>
</pm:header>
</pm:page>
</h:body>
</html>
und das LoginBean:
Java:
package de.fanavity.webservice.web.homepage.bean;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import de.fanavity.webservice.datenbank.BankDao;
import de.fanavity.webservice.web.pojo.User;
import de.fanavity.webservice.web.server.BankApi;
import de.fanavity.webservice.ws.impl.callback.ResultinfoCallback;
@ManagedBean(name = "loginBean")
@SessionScoped
public class LoginBean implements Serializable {
private static final long serialVersionUID = 7765876811740798583L;
// Simple user database :)
private String username;
private String password;
private boolean loggedIn;
@ManagedProperty(value="#{navigationBean}")
private NavigationBean navigationBean;
/**
* Login operation.
* @return
*/
public String doLogin() {
// Get every user from our sample database :)
if( username != null && password != null
&& !username.equals("")
&& !password.equals("")) {
BankDao dao = new BankDao();
BankApi api = new BankApi(dao);
ResultinfoCallback callback = new ResultinfoCallback();
User user = api.logon(username, password, callback);
// Successful login
if ( user.username != null && user.password != null
&& !user.username.equals("")
&& !user.password.equals("")
&& api.checkPassword(user, password, callback)) {
loggedIn = true;
return navigationBean.redirectToWelcome();
}
}
// Set login ERROR
// TODO -> Fehlermeldung
FacesMessage msg = new FacesMessage("Fehler beim Einloggen!", "Fehlermeldung aus dem UserObjekt");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage(null, msg);
// To to login page
return navigationBean.toLogin();
}
/**
* Logout operation.
* @return
*/
public String doLogout() {
// Set the paremeter indicating that user is logged in to false
loggedIn = false;
// Set logout message
FacesMessage msg = new FacesMessage("Erfolgreich ausgeloggt!", "Sie wurden erfolgreich ausgeloggt");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
FacesContext.getCurrentInstance().addMessage(null, msg);
return navigationBean.toLogin();
}
public String doRegister() {
ResultinfoCallback callback = new ResultinfoCallback();
if( username != null && password != null
&& !username.equals("")
&& !password.equals("")) {
BankDao dao = new BankDao();
BankApi api = new BankApi(dao);
User user = new User();
user.password = password;
user.username = username;
user = api.registerUser(user, callback);
if ( user.username != null && user.password != null ) {
loggedIn = true;
return navigationBean.redirectToWelcome();
}
}
FacesMessage msg = new FacesMessage("Fehler beim registrieren!", callback.getMeldungForMessagebox());
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage(null, msg);
// To to login page
return navigationBean.register();
}
// ------------------------------
// Getters & Setters
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 boolean isLoggedIn() {
return loggedIn;
}
public void setLoggedIn(boolean loggedIn) {
this.loggedIn = loggedIn;
}
public void setNavigationBean(NavigationBean navigationBean) {
this.navigationBean = navigationBean;
}
}
Es gibt weder eine Exception noch sonst irgendeine reaktion. Es kommt ganz kurz der Ajax spinner und das wars. Das Bean scheint da zu sein, da ich Benutzername und Passwort auslesen und auf der Seite anzeigen kann.
Habe ich etwas übersehen ?