Lesen von Modellobjekten, die in Velocity-Vorlagen abgebildet sind
Frage
Ich habe eine Struts + Velocity-Struktur wie zum Beispiel eine Person-Klasse, deren eine Eigenschaft ein Car-Objekt (mit eigenen Getter/Setter-Methoden) ist und die mithilfe der ModelDriven- und getModel-Struktur einem Velocity-Formular zugeordnet ist, das an eine Aktion übermittelt wird .
Ich möchte eine Schaltfläche in das Formular einfügen, die „Auto anzeigen“ anzeigt, wenn die Autoeigenschaft nicht null oder car.id != 0 ist, oder eine andere Schaltfläche „Auto auswählen“ anzeigen, wenn das Auto null oder car.id = 0 ist.
Wie codiere ich das?Ich habe so etwas in der Vorlagendatei versucht:
#if($car != null)
#ssubmit("name=view" "value=View Car")
#else
#ssubmit("name=new" "value=Choose Car")
#end
Aber ich erhalte ständig eine Fehlermeldung über den Nullwert im #Wenn Linie.
Ich habe auch eine boolesche Methode hasCar() in Person erstellt, um es auszuprobieren, aber ich kann nicht darauf zugreifen und weiß nicht warum.
Und Velocity + Struts-Tutorials sind schwer zu finden oder enthalten gute Informationen.
Danke
Lösung
Sie sollten die #if-Zeile ändern in:
#if($car)
Andere Tipps
In der kommenden Velocity 1.6-Version werden Sie dazu in der Lage sein #if( $car == $null )
ohne Fehlermeldungen.Dadurch können Sie leicht unterscheiden, wann $car
ist null und wenn es falsch ist.Um dies zu tun, ist jetzt erforderlich #if( $car && $car != false )
, was einfach nicht so freundlich ist.