Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading model objects mapped in Velocity Templates

I have a Struts + Velocity structure like for example, a Person class, whose one property is a Car object (with its own getter/setter methods) and it is mapped to a Velocity form that submits to an Action, using ModelDriven and getModel structure.

I what to put a button on the form that shows "View Car" if car property is not null or car.id != 0 or show another button "Choose Car" if car is null or car.id = 0.

How do I code this. I tried something like that in the template file:

#if($car != null)
  #ssubmit("name=view" "value=View Car")
#else
  #ssubmit("name=new" "value=Choose Car")
#end

But I keep getting error about Null value in the #if line.

I also created a boolean method hasCar() in Person to try, but I can't access it and I don't know why.

And Velocity + Struts tutorials are difficult to find or have good information.

Thanks

like image 772
Fernando Barrocal Avatar asked Mar 02 '23 08:03

Fernando Barrocal


2 Answers

You should change the #if line to:

#if($car)
like image 150
Brian Matthews Avatar answered Mar 07 '23 15:03

Brian Matthews


In the upcoming Velocity 1.6 release, you will be able to do #if( $car == $null ) without error messages. This will allow you to distinguish easily between when $car is null and when it is false. To do that now requires #if( $car && $car != false ), which just isn't as friendly.

like image 43
Nathan Bubna Avatar answered Mar 07 '23 15:03

Nathan Bubna