Matze: Java If Else ? Ich verstehs nicht

Beitrag lesen

Hallo Matze,

ich sags gleich. Ich bin ASP-Entwickler. Nachdem ich mehr oder weniger erfolgreich mit JAVA kämpfe, stolpere ich über ein eigentlich absolut triviales Problem.

if (request.getParameter("gueltig") != null)
{
   dwert = request.getParameter("gueltig");
}
else
{
   dwert = "01.01.03";
}

Gibt es irgend einen vernünftigen Grund weshalb er die else-Anweisung ignoriert ???

Vielen Dank im voraus.

Matze

also, die if/else anweisung stimmt so... also, das einzige was da in deinem code noch nen fehler produzieren könnte is der rückgabewert von request.getParameter. maybe kommt da ja immer was != null raus, bzw, was soll das teil eigentlich zurückgeben?
aber deine ifelse is richtig!
Ja!

also das ganze soll eigentlich nur folgendes bewirken. falls das request.gueltig leer ist soll automatisch der Wert "01.01.03" übernommen werden.

Wenn in der Eingabemaske im Feld "gueltig" ein datum steht funktioniert es auch problemlos. Nur wenn kein Wert eingetragen wird, wird so wie ich das sehe die else-Anweisung nicht ausgeführt.

Das Verhalten ist mir ziemlich rätselhaft.
Nein!

Ich tippe mal auf Applet.getParameter(String)

http://java.sun.com/j2se/1.4/docs/api/java/applet/Applet.html
->#getParameter(java.lang.String)

getParameter
public String getParameter(String name)
Returns the value of the named parameter in the HTML tag. For example, if this applet is specified as
 <applet code="Clock" width=50 height=50>
 <param name=Color value="blue">
 </applet>
then a call to getParameter("Color") returns the value "blue".
The name argument is case insensitive.
Parameters:
name - a parameter name.
Returns:
the value of the named parameter, or null if not set.

Diese Funktion gibt nur dann null zurück wenn der Parameter _nicht gesetzt_ ist. Wenn z.B.

<applet code="Clock" width=50 height=50>
 <param name=gueltig value="">
 </applet>

steht, dann gibt die Funktion einen Leerstring "" zurück.

Gruß

Axel

Hallo Axel,

logo. Der Wert ist auch "". Dachte damit ist das Problem gelöst. Denkste.

Ich habe es jetzt so umgestellt:
if (request.getParameter("gueltig") == "")
{
   dwert = "01.01.03";
}
else
{
   dwert = request.getParameter("gueltig");
}

Mit dem Ergegnis, dass er jetzt die else-Anweisung ausführt, aber die If nicht.
Auch wenn ich es drehe, habe ich den gleichen Effekt:
if (request.getParameter("gueltig") != "")
{
   dwert = request.getParameter("gueltig");
}
else
{
   dwert = "01.01.03";
}

Gruß Matze