JSPGenSDF系列讲解五:模板引擎

JSPGen 2010-07-08 07:05:25
JSPGen内置性能卓越的Velocity模板引擎,这是一个专门为Java服务的模板引擎,无论在功能或是性能还有易用性方面都比较优秀。除了允许任何人仅用简单的模板语言来引用由Java代码定义的对象外还支持JSPGen标签库,在基于模板引擎的基础上,扩展更多更强大更适合自己软件的模板标签,任何想达到的功能都皆有可能。
注:在JSPGen中,模板分为两种:项目模板与(扩展)标签模板。项目模板存放在”/templates/project/项目文件夹/模板方案/”目录下;(扩展)标签模板存放在 “/templates/tag/模板方案/“ 目录下。

具体书写格式请下载开发白皮书》》

理论上你可以在JSPGen模板使用所有Velocity的脚本及功能,但我们不推荐你在界面模板中使用过多过复杂的脚本表达方式,在万不得已的情况下,不要在界面模板中加入任何复杂的逻辑,更不要在界面模板中加入变量声明、逻辑运算符等等。 更需注意的是:大多数情况下,简洁格式引用足以满足使用,但有些情况下,必须使用正规格式引用,如你看到的变量名需要放到 { } 中。

注:模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定嵌套。默认的嵌套层次是3级,所以嵌套层次不能超过3层,如果需要更多的层次可以修改框架配置文件中的模板参数:
<template><maxdepth>3</maxdepth></template>(文件地址:WEB-INF/config.xml)
在JSPGen中,我们提供了五条基本的模板脚本语句,基本上就能满足所有应用模板的要求。这五条模板语句很简单,可以直接由界面设计人员来添加。

1. $!obj直接返回对象结果。如:在html标签中显示java对象msg的值。<p>$!msg</p>
在html标签中显示经过HtmlUtil对象处理过后的msg对象的值  <p>$!HtmlUtil.doSome($!msg)</p>
2. #if($!obj) #else #end 判断语句。如:用于弹出提示信息msg的例子。
#if($msg)
<script>alert('$!msg');</script>
#end
上面的脚本表示当对象msg对象存在时,输出<script>等后面的内容。
3. #foreach( $info in $list) $info.someList #end 循环读取集合list中的对象,并作相应的处理。如:显示热门文章的html界面模板脚本:
#foreach( $info in $hotList)
<a href="view.jsp?id=$!info.id" target="_blank">$!info.title</a>
#end
上面的脚本表示循环遍历hotList集合中的对象,并输出对象的相关内容。
4. #macro(macroName)#end 脚本函数(宏)调用,不推荐在界面模板中大量使用。如:在按点击列表的标题栏进行升降排序显示。函数(宏)定义,一般放在最前面
#macro(OrderPic $type)
#if ($orderField.equals($type))
<img src="/images/${orderType}.gif">
#end
#end
具体的调用如:头衔#OrderPic("title")
5. 包含文件#inclue("模板文件名")或#parse("模板文件名") , 主要用于处理具有相同内容的页面;
如每个网站的顶部或尾部内容: #parse("/top.html") 或 #include("/top.html")
parse与include的区别在于,parse若包含的文件中有Velocity脚本标签,将会进一步解析,而include将原样显示。
在实际应用项目中,为了实现界面的更加友好、人性化,会出现很多复、易变的需求。如根据对象的不同状态,显示不同的提示颜色、提示语音等功能。在这种时候,仍然要慎用太多的模板脚本功能,大多数需求都可以通过变通的方式解决,有些信息可以直接在对象中增加逻辑转化信息,有些界面要求可以通过在界面中使用与特定界面有关的表达方式来实现,如html页面中使用Javascript、CSS,Wap页面中使用WMLScript等等。只有,这样才能确保证你的系统核心不受界面的的影响及控制,才能更好的扩展及维护。


希望读者朋友能成为真正的程序高手,而不只是精通某个处于View层的脚本语言,因此也不希望广大Java开发人员在View层消耗太多的时间。




================================================================================
Java(JSP)交流QQ群:12349848
JSPGenSDF官方网站:http://www.JSPGen.com
...全文
278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JSPGen 2010-07-12
  • 打赏
  • 举报
回复
楼上好建议,不过大家可以到我的本网空间查阅学习!
  • 打赏
  • 举报
回复
楼主好像还缺乏发系列帖的经验:应该把之前本系列中各帖的地址逐一在末尾列出来,方便查阅。
xyflash 2010-07-10
  • 打赏
  • 举报
回复
是不是这个学会了 其他软件的配置也都会了 我的意思是用这个开发的软件?
sotom 2010-07-08
  • 打赏
  • 举报
回复
不错,不知是否原创


沙发占了
simaa0106 2010-07-08
  • 打赏
  • 举报
回复
不懂。学习

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧