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

4
我有一个类似于Struts + Velocity的结构,例如一个Person类,其中一个属性是一个Car对象(具有其自己的getter/setter方法),并且它被映射到一个Velocity表单中,该表单通过ModelDriven和getModel结构提交给一个Action。
我想在表单上放置一个按钮,如果car属性不为空或car.id != 0,则显示“查看汽车”,否则显示另一个按钮“选择汽车”。
如何编写此代码。我在模板文件中尝试了以下内容:
#if($car != null)
  #ssubmit("name=view" "value=View Car")
#else
  #ssubmit("name=new" "value=Choose Car")
#end

但是我一直在#if行中遇到空值错误。

我还在Person类中创建了一个布尔方法hasCar(),但我无法访问它,也不知道为什么。

同时,Velocity和Struts的教程很难找到或者信息不够丰富。

谢谢。

2个回答

6

您应该将#if行更改为:

#if($car)

2
在即将发布的Velocity 1.6版本中,您将能够无错误信息地执行#if( $car == $null )。这将使您能够轻松区分$car为空时和为false时的情况。现在要做到这一点需要使用#if( $car && $car != false ),这不是很友好。

嘿,Nathan,在这里见到你感觉真好。我广泛使用Velocity邮件列表,并且总是发现你的帮助非常准确。我会尽自己的一份力量,投票支持你的回答,继续保持! - Peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接