Java If Else ? Ich verstehs nicht
Matze
- java
Hallo NG,
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
Hallo NG,
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!
viel spaß noch ;)
Hallo NG,
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!viel spaß noch ;)
Erstmal danke ,
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.
Grüsse Matze
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 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
ja, oder eben so ;o)
if (request.getParameter("gueltig") != "")
probiers mal asu!
Hallo,
ja, oder eben so ;o)
if (request.getParameter("gueltig") != "")
Örks! Java-Anfänger-Fehler Nr.1! Niemals Strings mit == oder != vergleichen!
Immer String.equals(String) verwenden!
(Den Grund darfst du in einer Java-Einführung deiner Wahl nachlesen.)
Gruß
Slyh
Und was passiert wenn man beim request "null" zurückbekommt?
klappt es dann auch noch mit .equals ???????
;-)
P.S.: ich sage nur NullPointer.Exception
Hallo,
Und was passiert wenn man beim request "null" zurückbekommt?
klappt es dann auch noch mit .equals ???????
Ja, das klappt auch:
if ("".equals(request.getParameter("dingens"))) {
...
}
Weitere Fragen? ;-)
Gruß
Slyh
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
Hallo Matze,
logo. Der Wert ist auch "". Dachte damit ist das Problem gelöst. Denkste.
Ich habe es jetzt so umgestellt:
if (request.getParameter("gueltig") == "")
if (request.getParameter("gueltig") != "")
Also, Strings mit == zu vergleichen ist unsicher. Dafür sollte man die Methode equals des String-Objektes nehmen.
http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html
-> Methode equals(Object anObject)
Aber so kompliziert muss es wahrscheinlich gar nicht gemacht werden.
Annahmen:
datwert ist ein String
request.getParameter("gueltig") liefert einen String zurück
Wenn in request.getParameter("gueltig") irgendwas drinsteht, soll dieser Inhalt in datwert übernommen werden. Wenn request.getParameter("gueltig") leer ist, soll der Standard-Wert genommen werden.
datwert = request.getParameter("gueltig");
if (datwert.lenght() < 1)
{
dwert = "01.01.03";
}
Gruß
Axel
Hallo,
auch dir ein freundliches http://learn.to/quote/.
Um welche getParameter(String)-Methode geht es nun eigentlich? Die vom
Interface javax.servlet.ServletRequest bzw. javax.servlet.HttpServletRequest?
Wenn ja, dann gibt diese - wie du in der API-Dokumentation nachlesen kannst -
tatsächlich null zurück, wenn ein Parameter mit dem von dir angegebenen
Namen nicht existiert.
Da deine if-else-Konstruktion zumindest korrekt erscheint, vermute ich den
Fehler an irgend einer anderen Stelle.
(Probier doch zum Beispiel mal alle Parameternamen über die Methode
ServletRequest.getParameterNames() zu erfragen und auszugeben.)
Gruß
Slyh
Hi,
if (request.getParameter("gueltig") != null)
{
dwert = request.getParameter("gueltig");
}
else
{
dwert = "01.01.03";
}
dwert = request.getParameter("gueltig");
if ((dwert == null) || (dwert.length() == 0))
// es gibt zwei Fälle: der Parameter ist gar nicht definiert, oder sein Wert ist leer
{
dwert = "01.01.03";
}
cu,
Andreas
Hallo NG,
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
Hi Matze,
ich gehe davon aus, das du Java Servlet Pages programmieren willst.
Probiere doch mal folgendes aus:
if (request.getParameter("gueltig") != null && (!request.getParameter("gueltig").equals("") )
{
dwert = request.getParameter("gueltig");
}
else
{
dwert = "01.01.03";
}