锁定老帖子 主题:web开发中Velocity的应用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-24
跟大学同学从去年开始一起搞的softecase项目差不多完成了。在页面模版选择方面,我们选择了velocity来做公共界面设计。大家知道,当Velocity应用于web开发时,界面设计者可以和程序开发者同步开发一个遵循MVC架构的web站点,这就是说,页面设计者可以只关注页面的显示效果,程序开发者关注业务逻辑编码。 下面是表格编辑及预览的模版: CLASSIC_EDITOR_TABLE.vm 代码
CLASSIC_NAVIGATOR_TABLE.vm
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-24
长度有限制。只好重新跟帖。
CLASSIC_NAVIGATOR_TABLE.vm
|
|
返回顶楼 | |
发表时间:2007-07-25
Velocity不太好用的。 远不如JSP灵活。
比如说,使用一个常量。在JSP中可以这样: <%= SomeClass.CONSTANT %> 但是在Velocity中,使用 $someClass.CONSTANT却不行,它是NULL。 很不优雅的解决办法,是在toolbox中建立一个常量类,把系统所有用到的常量都放进去。 |
|
返回顶楼 | |
发表时间:2007-07-25
那是因为你没有设置someClass这个变量名吧
就好像你即使在JSP里那么写 上面不是也要引包的么 每个页面的包都要自己引 可能也算得上是灵活....... 不过所有页面都引一个包......... |
|
返回顶楼 | |
发表时间:2007-07-25
楼上的用一下velocity再来发言吧。
试着把一个 类的实例放到velocity上下文,然后在vm中引用这个类的常量,你看看行不行。 |
|
返回顶楼 | |
发表时间:2007-07-25
velocity是很好用。但是在做为模版时,对于没有的变量,你可以根据指令符号中的set或是conditions来判断一下。正如 ddandyy 所说的那样。
|
|
返回顶楼 | |
发表时间:2007-07-25
velocity 作为严格的MVC是很好用。但是功能稍微复杂些就不行了。比如,要根据一个用户的状态显示文字,如:
如果用户不舒服 , 显示 病了。 否则 显示: 健康。 对应的类是:(写简单点) some.pack.age.Person{ //用户的状态 ,1 健康的, 0 生病的。 private int status; //状态常量, 健康的。 public static final STATUS_HEALTHY=1; //状态常量, 生病的。 public static final STATUS_ILL=0; //其他方法 } 然后,在前台某个vm页面显示这个人的状态。velocity context中已经存在了Person这个类的某个实例,可以通过$person调用。请问你怎么办? ---------------------------------------------------- 也就是说,将如下JSP代码转换成VTL: <% if(person.getStatus()==person.STATUS_HEATHY){ out.print("健康人"); }else{ out.print("病人"); } %> |
|
返回顶楼 | |
发表时间:2007-07-25
说几个错误答案:
错误答案1: -------------------------------------------------------- #if($person.status==$person.STATUS_HEALTHY) 健康人 #else 病人 #end 错误答案2: -------------------------------------------------------- #if($person.status==$some.pack.age.Person.STATUS_HEALTHY) 健康人 #else 病人 #end |
|
返回顶楼 | |
发表时间:2007-07-25
用equals
p.s: 你居然认为在jsp上写java是灵活的表现....... 无语ing..... 以前讨论过太多次了 p.s2: 找毛病你都找不到啊....... 对str和obj的使用velocity的表现还是相当不错的 如果说毛病 也就是对数字的处理差了些 |
|
返回顶楼 | |
发表时间:2007-07-26
不是差了些,而是差很多。
对于数字, == 和equals 的实际效果是一样的。 JSP的灵活,在其中写JAVA代码是表现之一。你不能一棒子打死。如你不愿意写代码,写个tag出来也可以啊。或者用JSTL。 对于velocity,如果context中没有那个变量,就用不了。还不能判断null, 只能建立基本变量类型和Array, 1.4和以下的连Map, Set都建立不了。可能你认为这些都不是大问题,但是开发的时候就够让人头疼的了。 |
|
返回顶楼 | |