Lecture des objets de modèle mappés dans les modèles Velocity
Question
J'ai une structure Struts + Velocity comme par exemple une classe Person, dont une propriété est un objet Car (avec ses propres méthodes getter/setter) et elle est mappée à un formulaire Velocity qui se soumet à une action, en utilisant la structure ModelDriven et getModel. .
Je dois mettre un bouton sur le formulaire qui affiche "Afficher la voiture" si la propriété de la voiture n'est pas nulle ou car.id != 0 ou afficher un autre bouton "Choisir la voiture" si la voiture est nulle ou car.id = 0.
Comment puis-je coder cela.J'ai essayé quelque chose comme ça dans le fichier modèle :
#if($car != null)
#ssubmit("name=view" "value=View Car")
#else
#ssubmit("name=new" "value=Choose Car")
#end
Mais j'obtiens toujours une erreur concernant la valeur Null dans le #si doubler.
J'ai également créé une méthode booléenne hasCar() dans Person pour essayer, mais je ne peux pas y accéder et je ne sais pas pourquoi.
Et les didacticiels Velocity + Struts sont difficiles à trouver ou contiennent de bonnes informations.
Merci
La solution
Vous devez remplacer la ligne #if par :
#if($car)
Autres conseils
Dans la prochaine version de Velocity 1.6, vous pourrez faire #if( $car == $null )
sans message d'erreur.Cela vous permettra de distinguer facilement le moment où $car
est nul et quand il est faux.Pour ce faire, il faut maintenant #if( $car && $car != false )
, ce qui n'est tout simplement pas aussi convivial.