[Java/JSF] Properties worden niet geset

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gynnad
  • Registratie: September 2010
  • Laatst online: 08:04
Mede-auteur:

Verwijderd

Hallo,

Ik ben bezig met een project waarbij we EJB (Enterprise Java Beans) moeten gebruiken, maar sinds ik dit gebruikt doen sommige knoppen van methodes het niet meer. Of eigenlijk bij Login.xhtml doet deze knop het niet meer, wat doe ik verkeerd?

Login.xhtml
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
                    <h:form>
                        <h:outputLabel value="#{controllerBean.foutmelding}" id="foutmelding"></h:outputLabel><br />
                        <table width="50px" align="center">
                            <tr>
                                <td align="left">
                                    <h:outputLabel for="gebruiker" value="Gebruikersnaam:"/>
                                </td>
                                <td>
                                    <h:inputText id="gebruiker" required="true" value="#{controllerBean.gebruiker}"></h:inputText>
                                </td>
                            </tr>
                            <tr>
                                <td align="left">
                                    <h:outputLabel for="wachtwoord" value="Wachtwoord:"/>
                                </td>
                                <td>
                                    <h:inputSecret id="wachtwoord" required="true" value="#{controllerBean.wachtwoord}"></h:inputSecret>
                                </td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2">
                                    <h:commandButton value="Inloggen" styleClass="button" action="#{controllerBean.doeLogin}"/>
                                </td>
                            </tr>
                        </table>

                    </h:form>


ControllerBean.java
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
    public String gebruiker;
    public String wachtwoord;

    public void setFoutmelding(String foutmelding) {
        this.foutmelding = foutmelding;
    }

    public void setGebruiker(String gebruiker) {
        this.gebruiker = gebruiker;
    }

    public void setWachtwoord(String wachtwoord) {
        this.wachtwoord = wachtwoord;
    }

    public String getWachtwoord() {
        return wachtwoord;
    }

    public String doeLogin() {
        if (gebruiker != null && gebruiker.length() > 0 && wachtwoord != null && wachtwoord.length() > 0) {

            Klant k = controller.getKlant(gebruiker);
            if (k == null) {
                foutmelding = "Gebruikersnaam is onjuist.";
                return "Login.xhtml";
            }
            if (!k.getWachtwoord().equals(wachtwoord)) {
                foutmelding = "Wachtwoord is onjuist.";
                return "Login.xhtml";
            }
            ingelogdeKlant = k;
            foutmelding = "";
            return "Home.xhtml";

        } else {
            // Geen gebruikersnaam of wachtwoord ingevuld.
            foutmelding = "Vul uw gebruikersnaam en wachtwoord in.";
        }
        return "Login.xhtml";
    }

[ Voor 178% gewijzigd door Gynnad op 15-04-2011 11:51 ]

"Don't worry, about a thing, Cause every little thing is gonna be alright"


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

Zo'n lap code posten en niet meer vragen dan "wat doe ik verkeerd"is nu net niet de bedoeling, zeker niet voor een schoolopdracht. Probeer op z'n minst even een kleine test te maken waarin je je probleem reproduceerd en geef dan vervolgens ook nog aan wat je nu zelf al hebt geprobeerd om het werkend te krijgen. Dan kan je namelijk ook alleen de relevante code plaatsen i.p.v. de lap die je nu post :)

[ Voor 12% gewijzigd door Creepy op 15-04-2011 11:19 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Gynnad
  • Registratie: September 2010
  • Laatst online: 08:04
Creepy schreef op vrijdag 15 april 2011 @ 11:18:
Zo'n lap code posten en niet meer vragen dan "wat doe ik verkeerd"is nu net niet de bedoeling, zeker niet voor een schoolopdracht. Probeer op z'n minst even een kleine test te maken waarin je je probleem reproduceerd en geef dan vervolgens ook nog aan wat je nu zelf al hebt geprobeerd om het werkend te krijgen. Dan kan je namelijk ook alleen de relevante code plaatsen i.p.v. de lap die je nu post :)
Aangepast!

Als we debuggen dan komen we wel in de methode, maar de properties gebruiker en wachtwoord zijn dan null. Terwijl wel op Login.xhtml wel iets invullen, hierdoor krijgen we dus niet het gewenste resultaat. Hij doet het eigenlijk niet meer sinds we EJB gebruiken, hiervoor gebruikte we JPA en deden de methodes het nog uitstekend.

Ook geeft hij de foutmelding niet weer op de Login.xhtml terwijl we deze in de methode wel setten, daar komt hij met het debuggen ook gewoon langs. We hebben een vermoeden dat hij de klasse ControllerBean.java elke keer opnieuw aanmaakt als er iets gebeurt, maar dat is alleen een vermoedde en kunnen door middel van google geen juiste oplossing hiervoor vinden.

[ Voor 17% gewijzigd door Gynnad op 15-04-2011 11:43 ]

"Don't worry, about a thing, Cause every little thing is gonna be alright"


Acties:
  • 0 Henk 'm!

  • Eddy Dean
  • Registratie: November 2007
  • Laatst online: 08:25
Je submit button called heeft action="#{controllerBean.ShowLogin}", wat is die method ShowLogin? Wat is de scope van controllerBean? Wanneer wordt doeLogin gecalled?

Verder raad ik je aan gebruik te maken van h:message(s) in plaats van de het foutmelding-label zoals je het nu hebt.

Acties:
  • 0 Henk 'm!

  • Gynnad
  • Registratie: September 2010
  • Laatst online: 08:04
Eddy Dean schreef op vrijdag 15 april 2011 @ 11:48:
Je submit button called heeft action="#{controllerBean.ShowLogin}", wat is die method ShowLogin? Wat is de scope van controllerBean? Wanneer wordt doeLogin gecalled?

Verder raad ik je aan gebruik te maken van h:message(s) in plaats van de het foutmelding-label zoals je het nu hebt.
Sorry het is doeLogin, in het project staat het wel goed, maar ik moest het hier even anders inrichten van de mod ;)

We gebruiken SessionScoped, doeLogin wordt gedaan als een persoon op de knop drukt nadat hij de gebruikersnaam en wachtwoord heeft ingevuld. Hij komt wel in de methode maar de properties zijn beide null.

Bedankt voor de tip van de h:message(s).

"Don't worry, about a thing, Cause every little thing is gonna be alright"