Java 读取在Velocity模板中映射的模型对象

Java 读取在Velocity模板中映射的模型对象,java,struts,velocity,Java,Struts,Velocity,我有一个Struts+Velocity结构,比如一个Person类,它的一个属性是一个Car对象(具有自己的getter/setter方法),它被映射到一个Velocity表单,该表单使用ModelDriven和getModel结构提交给一个动作 如果Car属性不为null或Car.id!=如果Car为null或Car.id=0,则显示另一个按钮“选择Car” 我该如何编写代码。我在模板文件中尝试了类似的操作: #if($car != null) #ssubmit("name=view" "

我有一个Struts+Velocity结构,比如一个Person类,它的一个属性是一个Car对象(具有自己的getter/setter方法),它被映射到一个Velocity表单,该表单使用ModelDriven和getModel结构提交给一个动作

如果Car属性不为null或Car.id!=如果Car为null或Car.id=0,则显示另一个按钮“选择Car”

我该如何编写代码。我在模板文件中尝试了类似的操作:

#if($car != null)
  #ssubmit("name=view" "value=View Car")
#else
  #ssubmit("name=new" "value=Choose Car")
#end
但是我在#if行中不断得到关于空值的错误

我还亲自创建了一个布尔方法hasCar(),以供尝试,但我无法访问它,也不知道为什么

Velocity+Struts教程很难找到或获得好的信息

谢谢

您应该将#if行更改为:

#if($car)

在即将发布的Velocity 1.6版本中,您将能够在没有错误消息的情况下执行
#if($car==$null)
。这将允许您轻松区分
$car
何时为空和何时为假。要做到这一点,现在需要
#if($car&&$car!=false)
,这就不那么友好了。

嘿,Nathan,很高兴在这里见到你,我已经广泛使用了Velocity邮件列表,并且总是发现你的帮助很到位。我在为你的答案投票,继续投票!