KjellV Skrevet 10. oktober 2005 Del Skrevet 10. oktober 2005 Sliter litt med JSP her. Skal få koden i løkken til å kjøre hvis det er skrevet inn noe, og selvsagt ikke kjøre hvis det ikke blir sendt inn noen verdier. Jeg har skjema til å skrive inn verdier øverst på siden, så første gang man laster siden vil strengene være tomme. Er det ikke rett slik det står? Tengte også å legge inn en try/catch slik at Double.parseDouble ikke lager krøll hvis det er tegn som ikke hører hjemme som blir tastet inn av brukeren, men fikk ikke det til heller. Flott hvis noen finner ut av dette også. Fant ikke noe JSP-forumdel, så poster det her under Java i god tro. <% String side1string = request.getParameter( "side1" ); String side2string = request.getParameter( "side2" ); if (side1string != "" && side2string != "") { double side1 = Double.parseDouble( side1string ); double side2 = Double.parseDouble( side2string ); double areal = arealutrekning(side1,side2); out.println("<p>Arealet av rektangelet er " + side1*side2 + "</p>"); } else { out.println("<p>Du må skrive inn verdier</p>"); } %> Lenke til kommentar
laerda Skrevet 10. oktober 2005 Del Skrevet 10. oktober 2005 (endret) prøv med: if(side1string != null && side2string != null) i java får string variable verdien null (ikke som i "null", null er en egen javaverdi. Forteller vel at variablen ikke viser til noen verdi), med en gang de initialiseres. Endret 10. oktober 2005 av MaxTiger Lenke til kommentar
KjellV Skrevet 10. oktober 2005 Forfatter Del Skrevet 10. oktober 2005 Prøvd det også, men uten resultat. Er det ikke bare checkboxes og radiobuttons som får verdien null? Trodde String får "" når det ikke er noe i den (temmelig sikker, da det har fungert å bruke lik "" tidligere (prøvde først med null, men det funket ikke)). Kom på at man må bruke .equals når det er string, men får fortsatt feil: if ((side1string) .equals ("") || (side2string) .equals ("")) { out.println("<p>Du må skrive inn verdier</p>"); } else { double side1 = Double.parseDouble( side1string ); double side2 = Double.parseDouble( side2string ); double areal = arealutrekning(side1,side2); out.println("<p>Arealet av rektangelet er " + side1*side2 + "</p>"); } Lenke til kommentar
laerda Skrevet 10. oktober 2005 Del Skrevet 10. oktober 2005 Får du kompilert programmet? Tar jeg feil om jeg tror at det som gjelder for java gjelder for JSP? Lenke til kommentar
KjellV Skrevet 10. oktober 2005 Forfatter Del Skrevet 10. oktober 2005 Kan ikke Java jeg. Holder på med JSP på skolen, og hverken jeg eller stud.ass har noen løsning på problemet. Derfor prøver jeg meg her. Kompilerer ikke programmet, da dette er snakk om JSP (Java Server Pages), og ikke Java. Lenke til kommentar
boemane Skrevet 11. oktober 2005 Del Skrevet 11. oktober 2005 Løsningen på problemet er ganske enkel. - sjekk om variabelen ikke er null, og om den ikke er tom: <% String side1string = request.getParameter( "side1" ); String side2string = request.getParameter( "side2" ); if ((side1string != null && !side1string.equals("")) && (side2string != null && !side2string.equals("")) { double side1 = Double.parseDouble( side1string ); double side2 = Double.parseDouble( side2string ); double areal = arealutrekning(side1,side2); out.println("<p>Arealet av rektangelet er " + side1*side2 + "</p>"); } else { out.println("<p>Du må skrive inn verdier</p>"); } %> Du trenger strengt tatt ikke de ekstra parantesene i if-setningen, men jeg legger dem alltid til ettersom jeg synes det blir ryddigere og enklere å lese. Som du nevner, første gang du kjører siden er strengene både NULL og tomme, så du må forsikre deg at du sjekker om den er null _før_ du sjekker verdien, ellers får du en java.lang.NullPointerException. Kan i tillegg lønne seg å ha en Try/Catch blokk rundt Double.parseDouble() og, som nevt tidligere. DU sjekker da for NumberFormatException Lenke til kommentar
boemane Skrevet 11. oktober 2005 Del Skrevet 11. oktober 2005 Kan ikke Java jeg. Holder på med JSP på skolen, og hverken jeg eller stud.ass har noen løsning på problemet. Derfor prøver jeg meg her. Kompilerer ikke programmet, da dette er snakk om JSP (Java Server Pages), og ikke Java. Ganske skremmende at Stud.Ass i faget ikke hadde en løsning på problemet her, må en si. Er ganske sikker på at dette er "JSP101" For å klargjøre diskusjonen over: JSP (JavaServer Pages) er et kompilert programmerings-språk for web. JSP filer består av HTML kode med enkelte java-kode seksjoner. JSP siden kompileres av Web-serveren (Tomcat, JBoss, osv) til en Servlet, og det er denne Servlet'en som kjører når filnavn.jsp kalles i nettleseren. Når det er sakt, er det mulig å forhånds-kompilere JSP filer med javac. Lenke til kommentar
delfin Skrevet 16. oktober 2005 Del Skrevet 16. oktober 2005 Det er lurt å bruke "".equals(variabel) istedenfor variabel.equals("") for å unngå nullpointerexceptions ü <% String side1string = request.getParameter( "side1" ); String side2string = request.getParameter( "side2" ); if (side1 != null && side2 != null) if (!("".equals(side1) || "".equals(side2) ) ) { double side1 = Double.parseDouble( side1string ); double side2 = Double.parseDouble( side2string ); double areal = arealutrekning(side1,side2); out.println("<p>Arealet av rektangelet er " + side1*side2 + "</p>"); } else { out.println("<p>Du må skrive inn verdier</p>"); } %> Lenke til kommentar
KjellV Skrevet 19. november 2005 Forfatter Del Skrevet 19. november 2005 (endret) Takk for hjelpen. Lenge siden dette, men bedre sent enn aldri Har et lite spørsmål til: i siden med forms har jeg dette feltet: <input type="text" name="side1" /> Hvis man ikke skriver noe i tekstboksen, vil den ikke da få verdien "" (tom) og ikke NULL? Derfor jeg syntes det var litt rart å sjekke for både "" og NULL. Er IT-grunnkurs det er snakk om Endret 19. november 2005 av Nostradamus Lenke til kommentar
mikaelandre Skrevet 19. november 2005 Del Skrevet 19. november 2005 den vil få verdien "". er egentlig ikke nødvendig å sjekke for NULL. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå