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

如果car属性不为null或car.id!= 0,则在显示“View Car”的表单上放置一个按钮,如果car为null或car.id = 0,则显示另一个按钮“Choose Car”。

我该如何编码呢。 我在模板文件中尝试过类似的东西:

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

但是我一直在#if行中得到关于Null值的错误。

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

而Velocity + Struts教程很难找到或者有很好的信息。

谢谢

===============>>#1 票数:6 已采纳

您应该将#if行更改为:

#if($car)

===============>>#2 票数:2

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

  ask by Fernando Barrocal translate from so

未解决问题?本站智能推荐:

1回复

JSP Struts到Velocity Struts转换

我代表我的一个学生问这个问题:“有人知道如何将JSP Struts转换为Velocity Struts吗?”
2回复

Java:动态应用Velocity脚本

我正在用Struts MVC构建一个小门户,该门户可以从Web服务搜索/列出书籍。 在最初的测试中,我毫无问题地将Velocity Tools集成到了Struts项目中。 最后一步是允许用户选择是否要使用速度。 如果是,则速度脚本将以字符串形式来自Web服务。 我将测试放在JSP
2回复

我如何隐藏空的Velocity变量名?

我在Java应用程序中使用Struts + Velocity,但在提交表单后,确认页面(Velocity模板)显示变量名称而不是空标签,如以下示例中的Age: 姓名 :费尔南多 年龄 :{person.age} 性别 :男 我想知道如何隐藏它!
1回复

$ null检查速度

我通过您更新的资源在速度1.6中使用$ null来了解空检查。 资源: 读取在Velocity模板中映射的模型对象但是我面临着很多挑战,因为没有提供关于此的文档,因此没有$ null用于null检查速度。 请向我提供说明$ null的文档,以便对null检查速度有效。 在此先感谢幸运
1回复

VelocityEngine无法解析模板[在struts中]

因此,我才刚刚开始使用Velocity,并尝试通过一个简单的小型实验来弄清楚它。 现在,直接从文件中加载模板证明是一种失败,所以我改为通过StringResourceLoader来获取它。 该模板非常简单: 我从日志中挖出以下内容: 现在,这将很高兴获取模板,但是将其原
1回复

Sitemesh工作速度#parse不正确

现在我正在使用struts,sitemesh,velocity,并且配置已经可以使用 在首页: 在taglibs.vm中,我定义了一些全局变量: 当在head.vm和main.vm我尝试获取全局变量: 并得到结果: 没有任何变化! 但是,当我将#par
1回复

速度用户提供的带有Struts 1.2的JSP

我们有运行Struts 1.2和Velocity的成熟应用程序,我需要将页面从vm转换为jsp。 因此,我修改了struts-config,将前向更改为一个新的JSP文件,并在JSP中尝试显示一些分配给表单bean的数据,但所有表单属性在JSP中均显示为空。 当我查看表单本身时,我看到它
1回复

POST从速度到Struts ActionForm的字符串数组

我试图从struts ActionForm中的速度模板中检索String数组: 我的HTML代码: 我的动作表格: 但我收到此错误:
1回复

Freemarker是否类似于Velocity的toolbox.xml文件?

我有一个Struts 1应用程序,它可以将Velocity作为模板语言使用。 我将用Freemarker替换Velocity,并在VelocityViewServlet中寻找类似于'toolbox.xml'-File的东西。 (您可以将名称映射到Java类,并使用这些名称可以访问Veloci
1回复

速度模板中的增量映射

我有以下速度模板: 我的VelocityContext看起来如下: 现在,当我在模板上映射上下文时,我得到 嗨,汤姆,$ lastName 而我想要实现的是 嗨,汤姆,彼得 意味着我要逐步而不是一次全部应用更改。 有人做过吗?