vc模版插件使用手册.docx
- 文档编号:12255257
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:41
- 大小:30.42KB
vc模版插件使用手册.docx
《vc模版插件使用手册.docx》由会员分享,可在线阅读,更多相关《vc模版插件使用手册.docx(41页珍藏版)》请在冰豆网上搜索。
vc模版插件使用手册
模板插件使用方法
模板语言介绍
在《后台管理系统》中使用apache的velocity第三方软件,velocity本身定义了一套模板语言,并对提供了解析功能。
在源文件、模板中都可以使用velocity定义的模板语言,一般的情况下,我们只会使用其中一小部分常用功能就可以了。
具体的情况可以看附录。
Velocity常用的语法
在MaxPoral.PAS中常用的Velocity语法有
类型
说明范例
变量
变量的格式:
$VTL标识符
VTL标识符以字母开始,由字母、数字、横划线(-)或下划线(_)组成。
变量或者从模板中的set指令获得值,或者Java代码(同名变量)中获得值。
Velocity只处理已定义的变量引用,对于没有定义的变量引用,Velocity原样返回。
#set($foo="gibbous")
$moon=$foo
正式引用符号{}
正式引用符号在使用变量引用含糊的地方进行区分
#set($vice="klepto")
Jackisa${vice}maniac.
注释
单行注释(以##开始)和多行注释(包括在#*和*#之间)
##Thistextisnotvisible.
属性
格式:
$VTL标识符.VTL标识符
$customer.Address
$purchase.Total
方法
格式:
$VTL标识符(参数列表)
$customer.getAddress()
$purchase.getTotal()
$page.setTitle("MyHomePage")
$person.setAttributes(["Strange","Weird","Excited"])
特殊字符转义
对于$、#等特殊字符要正常显示,可以使用\进行转义,\\转义为\。
#set($email="foo")
输出结果是:
foo
\foo
#set
格式:
#set(LHS=RHS)
●LHS可以是变量引用或属性引用
●RHS可以是引用、字符串、数字、ArrayList或Map
#set($monkey=$bill)#set($monkey.Friend="monica")
#set($monkey.Blame=$whitehouse.Leak)
#if
#elseif
#else
#end
#if指令在条件成立时,显示#if和#end之间的内容,否则显示#else和#end之间的内容。
#if指令中可以使用的关系和逻辑符号包括:
●<、<=、==、>=、>
●&&(and)、||(or)、!
(not)
#set($testflag=$plugins.var("testflag"))
#if($testflag=="true")
#set($boNews=$plugins.create("bo","news"))
#set($content1=$boNews.fetch("record","newsDetail","56"))
#else
#set($content1=$plugins.var("vo"))
#end
#foreach
#end
遍历集合数据
#foreach($productin$allProducts)
##对$product进行处理
#end
插件介绍
插件采用了模板语言进行定义,使用的方法和遵循模板语言定义。
插件上下文是每个文件对象(源页面、板块、模板)中默认存在的,并且可以直接使用,所有要使用的插件都有它创建。
插件是完成一组特定功能的组件,在页面上以标记存在。
目前系统实现了二种类型的插件:
工具插件和业务插件
⏹工具插件:
◆关键字:
tools
◆功能:
完成构造页面展示
⏹业务插件:
◆关键字:
bo
◆功能:
是关联系统中业务的桥梁,可以取出其中的数据进行展示
插件上下文对象
在创建文件对象(源页面、板块、模板)时,系统中已经存在插件上下文对象,可以直接使用。
插件上下文对象是创建其它插件的工厂,任何插件的构造都有他来创建。
标示名称:
$plugins
方法
方法
说明范例
create
create(插件类型,插件标识符)
创建插件对象
插件类型:
系统定义的插件类型,目前只有tools和bo
插件关键字:
插件的名称
创建一个业务插件,并赋值给$boService变量
#set($boService=$plugins.create("bo","service"))
var
var(变量名称)
取出系统定义的变量
取出系统变量testflag并赋值给$testflag变量
#set($testflag=$plugins.var("testflag"))
url
url(”WEB绝对路径”)
WEB绝对路径:
是指不包括站点名的绝对路径,开始已经是以“/”打头的功能:
转换成相对路径
转换iframe中的src链接
urlIndex
取出索引页面的url。
该方法有两个参数:
参数一:
分类id
参数二:
索引页面的类型关键字,目前只存在业务索引页面,填index_service
例子:
$plugins.urlIndex(“1001”,”index_service”)
链接转换
为了保证系统产生静态文件的通用性,在系统中,链接要使用相对路径。
系统自动会对常见的URL进行链接转换,他们是
●链接(a)
●图像(img)
●背景图像(background)
对少量的的其它地方使用的链接,请使用插件上下文的url方法进行转换
输入规则
说明范例
a
Href必须在标志a的后面,中间保留空格, Href的内容必须是以”/”开始 系统对这样写的格式进行自动转换 img Src必须在标志img的后面,中间保留空格 Src的内容必须是以”/”开始 系统对这样写的格式进行自动转换 background background=”/…………….” Background的内容必须是以”/”开始 系统对这样写的格式进行自动转换 其它要转换的地方 $plugins.url(“/…………………..”) 请使用插件上下文中的url方法对需要进行的转换进行强制转换 不需要链接转换 $plugins.s() 对符合自动url转换的地方,如image,a,background,如果里面的链接地址不需要被转换,请使用此方法 则对于url“/portal/a.gif”,系统不会将他转换为相对链接 日期转换 对返回值为日期行的数据,系统可以格式化其显示方式 前提 转换的数据必须为日期对象 ●java.util.Date ●java.sql.Timestamp 转换方法 $plugins.formatDate(日期对象,日期格式串) 日期格式串 y年号,如1996 M月份,如July或者07 d月中第几天,如12 H小时(24制),如0、17 m分钟,如32 s钞钟,如55 S微钞,如978 E星期几,如Tuesday D一年中的第几天,如189 wweekinyear(Number)27 Wweekinmonth(Number)2 aam/pmmarker(Text)PM khourinday(1~24)(Number)24 Khourinam/pm(0~11)(Number)0 ztimezone(Text)PacificStandardTime 'escapefortext(Delimiter) ''singlequote(Literal)' 空值判断 对于返回值为null的值或对象属性,可以用下列方法进行判断 前提 $car.fuel值为空(null) 1 #if(! $car.fuel) 2 #if("$! car.fuel"=="") 3 #if("$car.fuel"=="") 4 #if((! $car.fuel)&&("$! car.fuel"==""))只检查null 范例 #set($a1=$content.wwwurl) #set($a2=(! $content.wwwurl)) #set($a3=("$content.wwwurl"=="")) #set($a4=("$! content.wwwurl"=="")) #set($a5=((! $content.wwwurl)&&("$! content.wwwurl"==""))) \$a1=$a1 \$a2=$a2 \$a3=$a3 \$a4=$a4 \$a5=$a5 =====================打印结果========================= \$a1=$a1因为$a1为空值,所以velocity直接把变量当成字符输出 $a2=true当为空值时,输出true $a3=false当为空值时,输出false $a4=true当为空值时,输出true $a5=true当为空值时,输出true 插件对象使用步骤 第一步: 创建插件对象 步骤 署名 第一步 创建插件对象 系统在使用插件的时候,必须先用插件上下文创建传间对象 如: 创建新闻插件 #set($boNews=$plugins.create("bo","news")) 第二步 Src必须在标志img的后面,中间保留空格 Src的内容必须是以”/”开始 系统对这样写的格式进行自动转换 使用插件对象的方法,并提供参数,取出结果值 如: #set($content=$boNews.fetch("record","newsDetail","153")) 第三步 对结果值进行展示 输出结果 如: ${content.id} ${content.content} 说明 其中第一、二步是必须的 插件手册 插件公共方法 描述 名称 fetch(参数列表) 说明 取出插件对象/数据 此方法是所有插件对象在构建数据时必须使用的方法 参数列表请参考各个插件的说明 工具插件 引用文件插件 插件描述 插件描述include 说明 引用站点中的源文件、源文件板块、模板文件 类型 tools 插件标识符 include 范例 ##创建引用插件 #set($include=$plugins.create("tools","include")) include.fetch 插件方法说明include。 fetch 方法描述 fetch(文件类型,文件名) 参数一 文件类型: 包括 ✧unit文件板块类型 ✧file文件类型 ✧tp模板类型 参数二 文件名 ✧对于文件板块,文件扩展名为.un ✧对于文件类型,文件扩展名为.html ✧对于模板类型,文件扩展名为.vm 范例 ##创建引用插件 #set($include=$plugins.create("tools","include")) ##引用板块 $include.fetch("unit","/a1/a22.un") ##引用文件 $include.fetch("file","/dddd.html") ##引用模板 $include.fetch("tp","/test.vm") 引用的限制 引用的限制 源页面 可以引用 ✧模板 ✧自己的板块 ✧源页面 页面板块 可以引用 ✧源页面 ✧模板 注: 页面板块不能引用板块 模板 可以引用 ✧模板 ✧源页面: 不推荐使用 范例 范例 ##创建引用插件 #set($include=$plugins.create("tools","include")) ##引用板块 $include.fetch("unit","/a1/a22.un") ##引用文件 $include.fetch("file","/dddd.html") ##引用模板 $include.fetch("tp","/test.vm") 索引分页插件 插件描述 插件描述index 说明 根据业务插件取出的数据,按照条件进行分页列表的构造 类型 tools 插件标识符 index 范例 ##创建分页插件 #set($index=$plugins.create("tools","index")) 备注 索引插件不能单独使用,必须和业务插件对象配合才能使用 在使用索引分页插件时,必须先创建业务插件对象 限制 ●索引插件只能使用在源页面中,不能用在模板和页面板块中 ●索引插件只能做为主页面,即其它页面不能include它。 ●索引插件可以被iframe index.runner 插件对象说明index.runner 属性名称 runner 属性描述 绑定的业务插件对象 说明 索引分页插件主要使用此属性进行控制,他把行为转移到控制的业务对象上 index.runner.bind 插件对象方法说明index.runner.bind 方法描述 bind(业务插件对象) 参数一 业务插件对象: 已经创建的业务插件对象 范例 ##构造业务对象 #set($boService=$plugins.create("bo","service")) ##构造索引对象 #set($index=$plugins.create("tools","index")) ##绑定对象 $index.runner.bind($boService) 备注 构造索引对象的步骤必须是 1.构造业务插件对象 2.构造索引对象 3.绑定索引对象 index.runner.condition 插件对象方法说明index.runner.condition 方法描述 condition([参数列表]) 参数 参数列表: 因为runner把行为转移到绑定的对象上,参数列表一样 具体调用某个业务对象的方法,参数列表就和对应方法的参数列表一样。 所以参数列表请参考对应的业务对象方法的参数列表 范例 ##构造业务对象 #set($boService=$plugins.create("bo","service")) ##构造索引对象 #set($index=$plugins.create("tools","index")) ##绑定对象 $index.runner.bind($boService) ##取出某类业务的列表 $index.runner.condition(["list","cate","10,1","2"]) $index.runner.link("news",$content)" index.runner.link 插件对象方法说明index.runner.condition 方法描述 link([参数列表]) 参数 参数列表: 因为runner把行为转移到绑定的对象上,参数列表一样 具体调用某个业务对象的方法,参数列表就和对应方法的参数列表一样。 所以参数列表请参考对应的业务对象方法的参数列表 范例 ##构造业务对象 #set($boService=$plugins.create("bo","service")) ##构造索引对象 #set($index=$plugins.create("tools","index")) ##绑定对象 $index.runner.bind($boService) ##取出某类业务的列表 $index.runner.link("业务数据模板名称",$content)" 例如: $index.runner.link("news_1",$content)" index.runner.pageName 插件对象方法说明index.runner.pageName 方法描述 pageName(页数) 参数 页数: 在总页数内的页数 返回值 指定页面的文件名称 index.runner属性 属性法说明index.runner firstName 第一页的页面名称 prevName 上一页的页面名称 nextName 下一页的页面名称 lastName 最后一页的页面名称 pageNo 当前的页数 pageCount 总页数 范例 范例 #set($boService=$plugins.create("bo","service")) #set($index=$plugins.create("tools","index")) $index.runner.bind($boService) $index.runner.condition(["list","cate","2,1","2"]) #set($contentlist=$index.runner.currentData) #foreach($contentin$contentlist) ${content.icpcode}, ${content.spname} #end pageNo: $index.runner.pageNo total: $index.runner.pageCount thesecondpagename=$index.runner.pageName (2) 内容分割插件 内容分页插件 描述 方法描述 根据传入的内容及分割的标志将内容分隔多份。 列表类型 record 方法关键字 无 参数一 无 备注 本插件在使用的时候无需声明。 根据新闻中的内容,如果包含分割符(为{%page%}),则将内容分割成多份,页面上显示分割后的页数。 只要插入范例中的代码即可: 范例 #if($plugins.isPageIndexContext()) #foreach($contentsin$plugins.pageIndexPlugIn.arrayUrl) #end #end PPS资源插件 PPS资源插件 描述 方法描述 根据传入的pps关键字,获取对应的参数。 关键字定义于配置文件System-config.xml中的PPS配置模块。 类型 tools 插件标识符 include 参数一 Stringstr资源的key 备注 com.aspire.ponaadmin.web.plugin.implement.ToolPlugInProxyPPSRes 注册该插件时必须为: ppsres而且是放在工具插件下。 返回是配置文件中PPS配置模块中对应的数据。 范例 ##创建插件 #set($res1=$plugins.create("tools","ppsres")) ##获取PPS配置资源 ${res1.fetch("PPSRES","orderURL")} 业务插件 业务插件的公共方法 插件描述 插件描述 说明 调用业务数据的插件 类型 bo 插件标识符 注册的业务插件关键字(插件名称) 如: news,service 范例 ##创建引用插件 #set($boService=$plugins.create("bo","service")) 业务插件的数据分类 对于业务插件对象返回的数据,包括两种形式 ✧单记录数据: 关键字record表示 ✧列表数据: 关键字list表示 数据分类作为一个必填的,而且还是第一个参数传递给业务插件,定位返回值的类型。 单记录数据方法 单记录数据方法 说明 取出单条记录的方法 方法 fetch("record",方法关键字,参数列表) 参数一 方法关键字 如: newsDetail取出新闻单条信息 参数二 参数列表 个数有1-n个 请参考每个方法关键字的定义 返回值 业务对象,提供属性供用户使用 具体属性请参考相应的方法 列表数据方法 列表数据方法 说明 取出列表数据的方法 方法 fetch("list",方法关键字,分页参数,参数列表) 参数一 方法关键字 如: newsList取出新闻列表 参数二 分页参数,格式(每页记录数,第几页) 参数三 参数列表 个数有1-n个 请参考每个方法关键字的定义 返回值 业务对象,提供属性供用户使用 具体属性请参考相应的方法 范例 范例 ##单记录范例 #set($content=$boService.fetch("record","service","888888","0000000007")) $
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc 模版 插件 使用手册
![提示](https://static.bdocx.com/images/bang_tan.gif)