Hey ich habe ein kleines Problem.
In den Beispielen für ein Loginformular wird oft
<h:inputText value="#{Login.username}" />
verwendet.
Komischerweise funktioniert das bei mir nicht. Im Textfeld wird beim ersten Aufruf #{Login.username} als String angezeigt und beim drücken das Loginbuttons wird zwar die checkLogin ausgeführt und auch der leere Konstrukter aufgerufen aber kein Setter. Dadurch sind die Variablen natürlich immer leer.
In JSF bin ich ziemlich neu und komm grad einfach nicht weiter, weil ich der einzige im Internet mit diesem Problem zu sein scheine.
Hat jemand eine Idee?
login.jsp:
Login.java:
faces-config.xml:
In den Beispielen für ein Loginformular wird oft
<h:inputText value="#{Login.username}" />
verwendet.
Komischerweise funktioniert das bei mir nicht. Im Textfeld wird beim ersten Aufruf #{Login.username} als String angezeigt und beim drücken das Loginbuttons wird zwar die checkLogin ausgeführt und auch der leere Konstrukter aufgerufen aber kein Setter. Dadurch sind die Variablen natürlich immer leer.
In JSF bin ich ziemlich neu und komm grad einfach nicht weiter, weil ich der einzige im Internet mit diesem Problem zu sein scheine.
Hat jemand eine Idee?
login.jsp:
Code:
<body> <ui:composition template="/style/template.xhtml"> <f:view> <ui:define name="content"> <h:form> <h:outputLabel>Benutzername:</h:outputLabel> <h:inputText value="#{Login.username}" /> <h:outputLabel>Passwort:</h:outputLabel> <h:inputText value="#{Login.passwort}" /> <h:commandButton value="Login" action="#{Login.checkLogin}" /> </h:form> </ui:define> </f:view> </ui:composition> </body>
Code:
public class Login { private String username; private String passwort; public Login(){ } public String getUsername(){ return this.username; } public void setUsername(String username){ this.username = username; } public String getPasswort(){ return this.passwort; } public void setPasswort(String passwort){ this.passwort = passwort; } public String checkLogin(){ System.out.println(username); System.out.println(passwort); if(this.username != null && this.passwort != null) { if(this.username.equals("admin") && this.passwort.equals("test")) { return "success"; } else { return "fail"; } } else { return "fail"; } } }
Code:
<managed-bean> <managed-bean-name>Login</managed-bean-name> <managed-bean-class>projekt.beans.Login</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <navigation-rule> <from-view-id>/login.jsp</from-view-id> <navigation-case> <from-action>#{Login.checkLogin}</from-action> <from-outcome>success</from-outcome> <to-view-id>/index.jsp</to-view-id> </navigation-case> <navigation-case> <from-action>#{Login.checkLogin}</from-action> <from-outcome>fail</from-outcome> <to-view-id>/login.jsp</to-view-id> </navigation-case> </navigation-rule>
Comment