Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 12:10 Der er 22 kommentarer og
1 løsning

undgå at linie bliver kaldt når form bliver submittet

Hej Eksperter,

Hvordan undgår jeg at en linie i min jsp bliver kaldt når jeg submitter en form i min jsp. Jeg har prøver at teste på en hidden variabel, men det resulterer i at siden ikke vil kompilere.
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 12:14 #1
Måske har du en syntaksfejl i din kode.
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 12:25 #2
Problemet er at jeg har en Vector jeg putter nogle ting i, men når siden så bliver kaldt igen så bliver den overskrevet :-(
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 12:25 #3
Hvis siden ikke vil kompileres/oversættes, så er det vel en syntaksfejl.
Dertil kan så være noget med logikken i programmet.
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 12:33 #4
Jeg ville jo gerne gøre sådan her, men det kan jeg ikke fordi så findes forapp ikke med mindre if bliver opfyldt :-(

if (FORM ER SUBMITTET)
        {
          Vector forapp = new Vector();
          for (int i=0; i < forapp.size(); i++) {
            out.println("arg " + (i + 1) + "=" + (String)forapp.elementAt(i));
      }
         
                }
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 12:35 #5
jeg putter værdier i den længere nede på min side

forapp.addElement(rs.getString("id"));
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 12:40 #6
Jeg forstår ikke helt. Men hvis det er fordi "forapp" skal kendes udenfor din if-sætning, skal du blot erklære den inden.
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 13:22 #7
Jamen hvordan gør jeg lige det
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 13:30 #8
Problemet er at vectoren bliver overskrevet når siden bliver kaldt
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 13:31 #9
den skal være kendt udenfor if sætningen
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 13:49 #10
Jeg ville jo mene at det er

Vector forapp;
i toppen om man så må sige og så
forapp = new Vector();

ingen jeg begynder at fylde den op. Problemer er bare at jeg bruger den tidlige end

forapp = new Vector();

så jeg får denne fejl

variable forapp might not have been initialized
          for (int i=0; i < forapp.size(); i++) {
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 13:51 #11
Så skal du jo lade være med at bruge den før du har sagt: forapp = new Vector();
Avatar billede thesurfer Nybegynder
13. juni 2007 - 13:52 #12
Eksempel:

Vector forapp;
if (FORM ER SUBMITTET)
        {
          forapp = new Vector();
          for (int i=0; i < forapp.size(); i++) {
            out.println("arg " + (i + 1) + "=" + (String)forapp.elementAt(i));
      }
         
                }
Avatar billede thesurfer Nybegynder
13. juni 2007 - 13:55 #13
Heh.. Måske skulle jeg opdatere.. :-)

Anyways..

Hvis du faktisk bruger forapp, før din IF-sætning, og samtidig vil have forapp til at være globalt, kan du gøre sådan her:

Vector forapp = new Vector(); // i toppen af dit første script-blok

Senere bruger du så bare: forapp

Dvs, uden "= new Vector()"..
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 14:03 #14
Mit problem er jo at hvis jeg gør det så bliver vectoren overskrevet når jeg kalder siden igen :-(
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 14:07 #15
Det vil under alle omstæmdigheder være en ny variabel på næste side. Skal den gemmes har du mulighed for at gøre det som sessions-variabel.
Avatar billede thesurfer Nybegynder
13. juni 2007 - 14:08 #16
Websider, er det man kalder "stateless". Dvs., de glemmer hvad der sker, mellem hvert kald.

Derfor skal du alligevel altid sætte værdien, hver eneste gang siden loades.
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 14:26 #17
kan jeg putte en vector i en sessionvariable
Avatar billede thesurfer Nybegynder
13. juni 2007 - 14:29 #18
Jeg har ikke arbejdet med JSP før, men jeg ved at man kan gemme objekter i sessioner, så det burde kunne lade sig gøre, at gemme en vector i en session.

Jeg bruger det til et eksamensprojekt i ASP.NET (C#), hvor et bruger-objektet gemmes i sessionen..
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 14:35 #19
Super. Tak for hjælpen. Jeg har smidt vectoren i en sessionvariabel og det løste problemet.
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 14:36 #20
session.setAttribute("forapp", forapp);

Vector vv = (Vector)session.getAttribute("forapp");
Avatar billede mikmakmuk Nybegynder
13. juni 2007 - 15:20 #21
lægger I nogle svar :-)
Avatar billede erikjacobsen Ekspert
13. juni 2007 - 17:36 #22
Nej tak
Avatar billede thesurfer Nybegynder
13. juni 2007 - 19:55 #23
Jeg gør :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester