/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Servlet: getParameter() og if virker ikke?~
Fra : Claus Jul Larsen


Dato : 27-07-01 09:52

Hej

Jeg kører et servlet program og undrer mig over det:

out.println("Mode: " + request.getParameter("mode"));
if (request.getParameter("mode") == "test") {
out.print("Param er: " + mode);
}

Den første linie bliver vist fint nok uden problemer, men det er som om at
den if-sætning ikke kan bruges sammen med getParameter() ??

Hvis jeg nu skriver

String mode = "test";

Så virker den if-sætning.

Er der noget specielt ved getParameter() som jeg ikke har opdaget?

På forhånd tak.

Claus Jul Larsen















 
 
Esben Mose Hansen (27-07-2001)
Kommentar
Fra : Esben Mose Hansen


Dato : 27-07-01 10:15

Claus Jul Larsen wrote:

> Hej
>
> Jeg kører et servlet program og undrer mig over det:
>
> out.println("Mode: " + request.getParameter("mode"));
> if (request.getParameter("mode") == "test") {
> out.print("Param er: " + mode);
> }
>
> Den første linie bliver vist fint nok uden problemer, men det er som om at
> den if-sætning ikke kan bruges sammen med getParameter() ??
>
> Hvis jeg nu skriver
>
> String mode = "test";
>
> Så virker den if-sætning.
>
> Er der noget specielt ved getParameter() som jeg ikke har opdaget?

Nej, det er strenghåndteringen der er knas med. Da strenge er objekter
er det ikke nødvendigvis sådan, at to strenge med samme indhold er samme
objekt. Du kan tvinge dette igennem med et kald, jeg tror det hedder
..internal, eller du kan gøre som de fleste og bruge en
equalsIgnoreCase() eller hvad den nu hedder.

mvh. Esben


Soren 'Disky' Reinke (27-07-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 27-07-01 10:18


"Claus Jul Larsen" <clausanne@mail.dk> skrev i en meddelelse
news:3b612aba$0$51823$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Jeg kører et servlet program og undrer mig over det:
>
> out.println("Mode: " + request.getParameter("mode"));
> if (request.getParameter("mode") == "test") {
> out.print("Param er: " + mode);
> }
>
> Den første linie bliver vist fint nok uden problemer, men det
er som om at
> den if-sætning ikke kan bruges sammen med getParameter() ??

Du kan ikke sammenligne String's ved at bruge '==' du skal bruge
en af 'equals' metoderne istedet.

f.eks.:

out.println("Mode: " + request.getParameter("mode"));
if (request.getParameter("mode") .equals("test") )
{
out.print("Param er: " + mode);
}


Så virker det.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Allan E (28-07-2001)
Kommentar
Fra : Allan E


Dato : 28-07-01 23:31


> Hvis jeg nu skriver
>
> String mode = "test";
>
> Så virker den if-sætning.

Måske kunne det være fordi du prøver at skrive den ikke eksisterende string
"mode" ud.
Du bliver nødt til stadig at bruge
request.getParameter("mode")
for at få fat på mode-variablen....

Fx
out.println("Mode: " + request.getParameter("mode"));
if (request.getParameter("mode") == "test") {
out.print("Param er: " +request.getParameter("mode"));
}

eller
String mode = request.getParameter("mode");
out.println("Mode: " + mode);
if ( mode == "test") {
out.print("Param er: " + mode);
}

Mvh
Allan





Soren 'Disky' Reinke (30-07-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 30-07-01 08:13

>
> Fx
> out.println("Mode: " + request.getParameter("mode"));
> if (request.getParameter("mode") == "test") {
> out.print("Param er: " +request.getParameter("mode"));
> }
>
> eller
> String mode = request.getParameter("mode");
> out.println("Mode: " + mode);
> if ( mode == "test") {
> out.print("Param er: " + mode);
> }

Du kan ikke sammenligne String's med == , du skal bruge
..equals(""); eller lignende.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Max Winther (06-08-2001)
Kommentar
Fra : Max Winther


Dato : 06-08-01 23:20

Og husk lige først at checke for null ellers vanker der runtime exception.

if (request.getParameter("mode") != null) {
fejl udskrivning

} else if (request.getParameter("mode") .equals("test")) {
succes

}

Max




"Claus Jul Larsen" <clausanne@mail.dk> wrote in message
news:3b612aba$0$51823$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Jeg kører et servlet program og undrer mig over det:
>
> out.println("Mode: " + request.getParameter("mode"));
> if (request.getParameter("mode") == "test") {
> out.print("Param er: " + mode);
> }
>
> Den første linie bliver vist fint nok uden problemer, men det er som om at
> den if-sætning ikke kan bruges sammen med getParameter() ??
>
> Hvis jeg nu skriver
>
> String mode = "test";
>
> Så virker den if-sætning.
>
> Er der noget specielt ved getParameter() som jeg ikke har opdaget?
>
> På forhånd tak.
>
> Claus Jul Larsen
>
>
>
>
>
>
>
>
>
>
>
>
>
>



Ole Nielsby (07-08-2001)
Kommentar
Fra : Ole Nielsby


Dato : 07-08-01 02:17


Max Winther <max.winther@wanadoo.dk> skrev:

> "Claus Jul Larsen" <clausanne@mail.dk> wrote in message
> news:3b612aba$0$51823$edfadb0f@dspool01.news.tele.dk...
>
> > Jeg kører et servlet program og undrer mig over det:
> >
> > out.println("Mode: " + request.getParameter("mode"));
> > if (request.getParameter("mode") == "test") {
> > out.print("Param er: " + mode);
> > }
> >
> > Den første linie bliver vist fint nok uden problemer, men det er som om
at
> > den if-sætning ikke kan bruges sammen med getParameter() ??
> >
> > Hvis jeg nu skriver
> >
> > String mode = "test";
> >
> > Så virker den if-sætning.
> >
> > Er der noget specielt ved getParameter() som jeg ikke har opdaget?
>
> Og husk lige først at checke for null ellers vanker der runtime exception.
>
> if (request.getParameter("mode") != null) {
> fejl udskrivning
>
> } else if (request.getParameter("mode") .equals("test")) {
> succes

Eller:

String mode = request.getParameter("mode");
if (mode != null && mode.trim().equals("test")) launchRocket();

..trim() er nødvendig fordi IE er noget klamp. Uden den kunne du skrive:

if ("test".equals(request.getParameter("mode"))) launchRocket();




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408939
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste