06. december 2005 - 15:04Der er
21 kommentarer og 1 løsning
Problem med if løkke i JSP
Hey... I følgende kode kan jeg ikke forstå hvorfor den hele tiden går ind i if løkken og udskriver den og ikke ind i else som jeg forventer.... --------------------------------------------------------- <body> <FORM method="POST" action="OpretKunde.jsp"> <BR> Navn <INPUT type="text" name="navn" size="25" value=""> <BR> Adresse <INPUT type="text" name="adresse" size="25" value=""> <BR> Postnr <INPUT type="text" name="postnr" size="10" value=""><BR> By <INPUT type="text" name="by" size="25" value=""><BR> Telefon <INPUT type="text" name="telefon" size="25" value=""><BR> Email <INPUT type="text" name="email" size="25" value=""> <br>
<body> <% String navn = request.getParameter("navn"); String adresse = request.getParameter("adresse"); String postnr = request.getParameter("postnr"); String by = request.getParameter("by"); String telefon = request.getParameter("telefon"); String email = request.getParameter("email");
if (navn != null && adresse != null && postnr != null && by != null && telefon != null && email != null) { %> Du oprettes som kunde med følgende data : <BR> <%=navn%> <BR> <%=adresse%> <BR> <%=postnr%> <BR> <%=by%><BR> <%=telefon%> <BR> <%=email%><br>
Sådan sammenligner man jo ikke i Java. Husk at bruge .equals. Udover at teste for den tomme streng, kan du også teste for null, hvis man kommer ind på Opretkunde.jsp uden at komme fra din form.
Erik, jeg prøvede bare for sjov at sætte dem til "" istedet for null, og nu hopper den rigtig mellem if og else løkken. Hvis jeg undlader at udfylde nogel af felterne øverst så går den ned til else... så det virker åbenbart nu !?!??!
Nob erik. Det er meningen at når alle felter er fyldt ud, så skal den ind i if løkken og skrive at man er blevet oprettet, hvis nogen er felterne ikke udfyldes, så skal den ind i else og skrive at man ikke er bleveet oprettet.
Jeg har lige prøvet med navn.equals(""), og selvom alle felter er udfyldte, så går den stadig ned i else og skriver at man oprettes ikke.
jeg har kun det kode som ses helt øverst. Jeg ville lave det sådan at hvis alle felter er udfyldte, så skal den nede i OpretKunde.jsp, komme med beskeden om at man er oprettet som kunde og udskrive informationerne. Hvis man ex ikke skriver telefon og by, så skal den ned i else og skrive at man ikke oprettes...
Det du lige har skrevet om at jeg testede for om det var forskelligt fra "ingenting", der var det meningen at den skulle teste, at hvis navn bliver tildelt en værdi fra request.getParameter("navn"), så hvis navn != null, dvs hvis navn ikke indeholder noget så er den falsk, hvis den er true, fortsætter den videre med adresse osv.
if (navn.equals("") && adresse.equals("") && postnr.equals("") && by.equals("")&& telefon.equals("") && email.equals("")) { %> Du oprettes som kunde med følgende data : <BR> <%=navn%> <BR> <%=adresse%> <BR> <%=postnr%> <BR> <%=by%><BR> <%=telefon%> <BR> <%=email%><br>
arrhh... Hvordan kunne du se det erik... jeg har siddet og vendt det på hovedet for at få det til at virke... lille teoretisk forklaring og et svar tak, hvis du samler på point
Jeg samler slet ikke på point, tak. Men lige et PS:
Hvis der ikke er et felt i din form, der hedder "ZZZ", vil request.getParameter("ZZZ") være null. Ellers vil det være en ikke-null streng. Kommer du til siden fra et andet sted, fx taster den direkte ind i browseren, vil du nu få en null-pointer exception.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.