Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > $Request.get default

$Request.get default

Hallo an alle,


ich setze im onchange Event einer Auswahlliste einen Requestparameter per JS!

Dieser wird dann in VTL beim Laden der Seite mit $Request.get...ausgelesen und einer vtl Variablen $wert zugewiesen!

Dieser Wert wird auf der Seite in einem statischen Text angezeigt. Alles i.o.




Wenn nun aber der Requestwert gar nicht gesetzt wird, weil die Auswahlliste gar kein onchange hatte, dann wird auf der Seite "$wert" angezeigt.

Das liegt sicher darin, das es den Requestparameter gar nicht gab.

Frage! Wie kann ich einen default Wert für den Requestparameter erzeugen? Bei Sessionparametern ist das ja problemlos möglich.




Ich habe in vtl schon versucht mit #if($wert == "$wert") #set($wert = "vorgabe") #end




aber aus irgendeinem mir unerklärlichen Grund geht das nicht!




Danke!



12.03.2016 08:36 von Ulrikus
Man kann mit $Request.containsKey('mykey') prüfen ob der Wert gesetzt ist.

#if($Request.containsKey('mykey'))
#set($wert=$Request.get('mykey'))
#else
#set($wert = "default")
#end

12.03.2016 08:45 von MartinW
Ein absoluter Traum! Ich habe schon in der VTL Referenz nachgesehen aber nix gefunden .. wo findet man sowas? Vielen Dank, das war jetzt das "Beste Wort zum Sonntag"
12.03.2016 09:42 von Ulrikus
Ergänzend....
Die get-Methode des Request-Objektes akzeptiert als zweiten Parameter einen Fallback-/Default-Wert.
#set( $wert = $Request.get('rq_myKey', 'myDefaultValue') )

"Findet" man hier: Intrexx Documentation Site
attention

Außerdem, zu deinem Problem, warum der Vergleich
#if($wert == "$wert") #set($wert = "vorgabe") #end
nicht funktioniert.
Wenn eine Velocity-Variable nicht definiert ist, oder sie ist NULL, wird bzw. kann sie vom Parser ja nicht ersetzt werden, daher bleibt "$wert" in der Ausgabe stehen. Dieses Verhalten kann man mit der "Silent-Notation" unterbinden:

$!wert
Der Variablenname wird dann nicht mehr dargestellt, falls sie nicht gesetzt oder NULL ist.
Nun zum Vergleich. Deine Variable $wert ist also nicht definiert oder NULL und du vergleichst sie mit einer Zeichenkette "$wert" (Variablenname wird nicht ersetzt).
Folglich immer false...
Hoffe ich konnte es verständlich erklären.
Zu Velocity ist folgende Dokumentation seeehr empfehlenswert: Velocity User Guid

Gruß
12.03.2016 20:13 von handw3rker
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg