Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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 av Zethyr
Lenke til kommentar

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

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
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
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

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.

 

:hmm:

Lenke til kommentar

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 av tZar
Lenke til kommentar

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 av dagjonas
Lenke til kommentar

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 av dagjonas
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...