dagjonas Skrevet 17. september 2006 Del Skrevet 17. september 2006 Jeg har laget en gjestebok, som sender informasjonen til en annen side hvor det presenteres, det går helt fint, man kan gi siden min karakter fra A til E, men i tillegg vil jeg få med dette: -Karaktersjekk: dersom jeg får en veldig god karakter (A) skal siden inneholde en takkemelding. Prøvde meg da på følgene: <% String karakter; if ( "A".equals(karakter) ) { out.println("Takk for den gode karakteren"); } %> Det gikk ikke så bra. Noen som ser direkte hva som er feil? (tilleggsinfo, String karakter = request.getParameter("karakter"); karakterer gis ved såkalte radioknapper.) Lenke til kommentar
Zethyr Skrevet 17. september 2006 Del Skrevet 17. september 2006 (endret) Prøve å bytte om på det? altså if(karakter.equals("A") ? Jeg har virkelig null peil, men jeg tror ikke at en tekst som ikke blir initialisert som en string fungerer som et objekt, og derfor ikke har equals-funksjonen. Dessuten bør du kanskje ikke initialisere 'karakter' to ganger? Når du har skrevet: String karakter = request.getParameter("karakter"); behøver du neppe å skrive String karakter; Jeg har ikke lært dette selv enda, men det høres i mine ører sannsynlig ut. Endret 17. september 2006 av Zethyr Lenke til kommentar
dagjonas Skrevet 17. september 2006 Forfatter Del Skrevet 17. september 2006 Flott! Det ble korrekt med dette: <% if ( karakter.equals("A") ) { out.println("Takk for den gode karakteren"); } %> Takk. Lenke til kommentar
dagjonas Skrevet 17. september 2006 Forfatter Del Skrevet 17. september 2006 Jeg har et meldingsfelt, hvor man skriver inn en kommentar i gjesteboka, String melding = request.getParameter("melding"); Hvordan kan jeg legge inn en melding hvis tekstfeltet er tomt når man prøver å sende beskjeden? En pop-up eller bare at siden man blir sendt til gir en beskjed om det. Slik er skjemaet til nå, <% //Her kommer input data String navn = request.getParameter("navn"); String karakter = request.getParameter("karakter"); String melding = request.getParameter("melding"); %> <table border="0" cellspacing="0" cellpadding="3"> <tr><td>Navn:</td><td><%=navn%></td></tr> <tr><td>Karakter:</td><td><%=karakter%></td></tr> <tr><td>Melding:</td><td><%=melding%></td></tr> </table> <p> <% if ( karakter.equals("A") ) { out.println("Takk for den gode karakteren"); } else if ( karakter.equals("F") ) { out.println("Hvorfor likte du ikke siden min?"); } %> <p/> <% if ( melding.equals("") ) { out.println("Du skrev ikke inn noen melding"); } %> Lenke til kommentar
Zethyr Skrevet 17. september 2006 Del Skrevet 17. september 2006 if(melding = 0){ out.println("sucka"); } ? Slik jeg har forstått det er det forskjell på å sammenlikne for en tom String og en bestemt String, så jeg bruker hvertfall noe liknende det ovenfor. Går du i klassen min btw? Data eller komtek på NTNU ? Lenke til kommentar
dagjonas Skrevet 19. september 2006 Forfatter Del Skrevet 19. september 2006 Jeg går hverken Komtek eller Data. Tilbake til det jeg lurer på, jeg vil at skjemaet mitt skal si ifra hvis ingen beskjed skrives inn, takk for en god karakter når jeg får en og deretter presentere informasjonen vedkommende skrev inn. Prøvde meg da på følgende: <% //Her kommer input data String navn = request.getParameter("navn"); String karakter = request.getParameter("karakter"); String melding = request.getParameter("melding"); String tipping = request.getParameter("tipping"); String[][] info = new String[4][4]; %> <% if ( melding.equals("") ) { out.println("Du skrev ikke inn noen melding"); } else ( karakter.equals("A") ) { out.println("Takk for den gode karakteren"); && out.println( //første rad, første kolonne info[0][0] = "Navn:"; //første rad andre kolonne info[0][1] = navn; //andre rad, første kolonne info[1][0] = "Karakter:"; //andre rad, andre kolonne info[1][1] = karakter; //tredje rad, første kolonne info[2][0] = "Melding:"; //tredje rad, andre kolonne info[2][1] = melding; //fjerde rad, første kolonne info[3][0] = "Vinneren av Tippeligaen 06:"; //fjerde rad, andre kolonne info[3][1] = tipping; ); } %> Det gikk ikke så bra, det er mulig man ikke kan inkludere tabeller slik i out.println. Så, er det noen forslag til hvordan jeg skal få gjort dette? Lenke til kommentar
Zethyr Skrevet 19. september 2006 Del Skrevet 19. september 2006 Det gikk ikke så bra, det er mulig man ikke kan inkludere tabeller slik i out.println.Så, er det noen forslag til hvordan jeg skal få gjort dette? 6897184[/snapback] Her har du, midt inni out.println(), brukt plassen til å definere hva som skal ligge i de forskjellige plassene i arrayet. Dette gjør du utenfor printline'en. I printlinen, dersom du skal skrive ut innholdet, kan dette gjøres slik: out.println(info[0][0] + " : " + info[0][1] + "</br>" info[1][0] + " : " + info[1][1] + ... //mye mer her.. ) Det her flytter du ut av metoden out.println (setter det ovenfor): //første rad, første kolonne info[0][0] = "Navn:"; //første rad andre kolonne info[0][1] = navn; //andre rad, første kolonne ... Du har også en malplassert && inni det som utføres i else. ...tror jeg da. Vi har ikke kommet så langt i JSP enda selv, og foreleseren vet jo ikke hva han snakker om (og kommer med flere faktafeil hver forelesning). Lenke til kommentar
tZar Skrevet 19. september 2006 Del Skrevet 19. september 2006 Er det ikke litt enklere å kjøre form validation på klientside? javascript gjør susen function checkField(field) { if (document.getElementById(field).value=''){ alert('Vennligs skriv noe inn i ' + field); } } Sånn feks Lenke til kommentar
Zethyr Skrevet 19. september 2006 Del Skrevet 19. september 2006 Er det ikke litt enklere å kjøre form validation på klientside? javascript gjør susen function checkField(field) { if (document.getElementById(field).value=''){ alert('Vennligs skriv noe inn i ' + field); } } Sånn feks 6897720[/snapback] Ikke gjør det for avansert for han, så.. Det er ikke så mye vits i å kjøre deler av dette clientside når han tydeligvis trenger en del hjelp med å forstå syntaxen på serverside først. Én ting av gangen er ofte både mer motiverende og enklere. Lenke til kommentar
dagjonas Skrevet 20. september 2006 Forfatter Del Skrevet 20. september 2006 Det virker som du kan en del Zethyr, så jeg lurte på om du kanskje kunne skrive ned hvordan det blir hvis følgende skal utføres: Hvis meldingsfeltet er tomt skal siden kun vise beskjeden "du skrev ikke inn noen melding", dersom det er utfylt skal siden vise en tabell med navn, email, karakter og melding, og i tillegg hvis karakteren A blir gitt skal det takkes for den gode karakteren under tabellen og hvis karakteren E blir gitt skal en annen melding dukke opp under tabellen. Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 (endret) Uten å ha skrevet JSP i hele mitt liv, prøver jeg meg på følgende: <% String karakter = request.getParameter("karakter"); String melding = request.getParameter("melding"); if ( melding.equals("") ) { out.println("Du skrev ikke inn noen melding"); } else { if ( karakter.equals("A") ) { out.println("Takk for den gode karakteren"); } out.println("<table>"); out.println("<tr><td>Navn</td><td>"+request.getParameter("navn")+"</td></tr>"); out.println("<tr><td>Karakter</td><td>"+karakter+"</td></tr>"); out.println("<tr><td>Melding</td><td>"+melding+"</td></tr>"); out.println("<tr><td>Tipping</td><td>"+request.getParameter("tipping")+"</td></tr>"); out.println("</table>"); } %> Hvorfor gå innom et array? Edit: Rettet på noen småting Endret 20. september 2006 av tZar Lenke til kommentar
dagjonas Skrevet 20. september 2006 Forfatter Del Skrevet 20. september 2006 Takk for forsøket tZar, men det ble ikke, får en solid error Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 Skal se om jeg har noe jsp støtte her, så skal jeg nok komme opp med noe uten feilmelding Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 Fungerte utmerket her faktisk... Sikker på at du brukte koden etter at jeg oppdaterte den? Lenke til kommentar
Zethyr Skrevet 20. september 2006 Del Skrevet 20. september 2006 Dersom du skriver ned erroren kan jo det kanskje hjelpe? Du kommer til å lese og tolke mange feilmeldinger før du blir godt kjent med JSP. Lenke til kommentar
dagjonas Skrevet 20. september 2006 Forfatter Del Skrevet 20. september 2006 (endret) Brukte den oppdaterte, bruker Apache Tomcat 4.1.24 som server, og får en ganske lang error. Merkelig, jeg tar jo bare det du skrev og lagrer det som jsp. type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at de.micromata.schroedinger.plugins.logview.LogValve.invoke(LogValve.java:48) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619) at java.lang.Thread.run(Thread.java:613) Endret 20. september 2006 av dagjonas Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 (endret) Lastet selv ned Tomcat 5 nå bare for å teste koden, og den fungerte som sagt med en gang. Lim inn feilmeldingen du, så finner vi nok ut av hva som feilet Edit: og der var feilmeldingen på plass ja Endret 20. september 2006 av tZar Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 Den var jo passe drøy, her må jeg melde pass. Koden skal fungere, men tydeligvis ikke hos deg. Ikke klarer jeg å se noe fornuftig i denne feilmeldinge, men det klarer sikkert noen andre Lenke til kommentar
dagjonas Skrevet 20. september 2006 Forfatter Del Skrevet 20. september 2006 (endret) Lastet opp siden til serveren der jeg har hjemmesiden, fikk en noget kortere feilmelding, men dog. 500 Servlet Exception java.lang.NullPointerException at _dagjonas._fokk__jsp._jspService(/dagjonas/fokk.jsp:6) at com.caucho.jsp.JavaPage.service(JavaPage.java:75) at com.caucho.jsp.Page.subservice(Page.java:486) at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182) at com.caucho.server.http.Invocation.service(Invocation.java:311) at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:218) at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:160) at com.caucho.server.TcpConnection.run(TcpConnection.java:137) at java.lang.Thread.run(Thread.java:534) Endret 20. september 2006 av dagjonas Lenke til kommentar
tZar Skrevet 20. september 2006 Del Skrevet 20. september 2006 Har du kjørt en post til siden da med aktuelle felter? Hvis du bare kaller siden direkte, så vil då få en feilmelding på linje 6, noe feilmeldingen idikerer at _dagjonas._test__jsp._jspService(/dagjonas/fokk.jsp:6) 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å