Web网页模板技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.可包含文件的parse指令 使用parse指令可导入一个包含VTL的本地文件,和使用include不 同,使用parse指令导入的文件会被Velocity解析,而且它只能一次导入 一个文件,该指令的语法格式如下:
#parse ("file")
例如:
#parse ("index.vm") #parse ($main)
Velocity引用的作用是为了在模板中显示动态的内容。在Velocity中, 引用分为变量引用、属性引用和方法引用。 1.变量引用 变量引用由$和VTL标识符组成,VTL标识符必须以字母开头,其 余字符可以是字母(a…z 、A…Z)、数字(0…9)、连字符(-)或 下划线(_)。例如:
$username $user-name $user_name $number1
$country.china $user.age
属性引用也有两种赋值方式:一种是使用Hashtable对象赋值;另一种 是使用方法赋值。有如下模板文件:
bookname: $book.bookname bookauthor: $book.bookauthor
使用Hashtable对象在 程序中赋值:
Web网页模板技术 网页模板技术
1.1 Web模板简介 1.2 Velocity模板 1.3 FreeMarker模板
1.1 Web模板简介 模板简介
模板技术提供了一种简洁的方式来生成动态的页面,并将程序逻辑和 视图之间分离开来,从而使程序开发人员只专注于编写底层代码,页面 设计人员只专注于视图方面的设计,这种方式不仅提高了开发效率,还 使得应用程序在长时间运行后依然具有很好的维护性。 模板语言在现代的软件开发中占据着重要的地位,它的功能强大,而 且学习起来又是非常简单,即使不熟悉编程的人也能很快的掌握它。 模板语言可以生成动态的页面,简化Web开发,但是它不仅仅局限于此 ,还有许多地方都可以应用它,比如生成SQL、Email、XML或者程序 源代码,甚至作为其它系统的一个集成组件。 Velocity和FreeMarker是目前流行的两种模板语言,其中Velocity是 Apache Jakarta的一个开源产品,同时它也是一个基于Java的模板引擎, 可方便的对模板进行解析和处理。FreeMarker是另一个优秀的模板语言 ,它的功能也是非常强大,而且适合于MVC模式的Web应用中。
其中,$name被称为Velocity的变量引用,它的值由Java程序来提供。 (2)建立给Velocity变量引用提供值的Java类,类名为“HelloVelocity.java” 主要代码如下:
初识Velocity(2) ( ) 初识
public class HelloVelocity { public static void main(String[] args) { try { Velocity.init(); //初始化Velocity引擎 } catch (Exception e) { e.printStackTrace(); } VelocityContext context = new VelocityContext(); //初始化Velocity上下文 context.put("name", "Velocity"); //把数据填入上下文 StringWriter writer = new StringWriter(); try { //把模板和上下文结合起来 Velocity.mergeTemplate("hello.vm", "ISO-8859-1", context, writer); } catch (Exception e) { e.printStackTrace(); } System.out.println(writer.toString()); //控制台上输出 } }
返回
初识Velocity(1) ( ) 初识
下面通过一个简单实例来初步认识Velocity。 (1)在ecplise中新建一个Java工程,在工程的根目录下建立Velocity模板 文件,Velocity的模板文件以.vm结尾,在这里建立的模板文件的名称为 hello.vm,具体代码如下:
hello,$name
Velocity下载与安装 下载与安装
Velocity的下载网站是“http://velocity.apache.org/”,在此网站上下 载完Velocity以后将其解压缩,会得到两个jar文件:velocity-1.5.jar和 velocity-dep-1.5.jar,其中velocity-1.5.jar包含了Velocity的核心类,但是 它没有Velocity必需的库文件,velocity-dep-1.5.jar不仅包含了构建完整 的Velocity库文件,还有Velocity所有依赖的库文件。将这两个jar文件放 入应用程序的classpath下,就完成了Velocity的安装。
#foreach(Loop) ... #end
foreach指令可进行循环的对象有Vector、Hashtale或Array,例如:
#foreach($book in $booklist) $book #end
Velocity的指令(5) 的指令( ) 的指令
4.可包含文件的include指令 使用include指令可将一个本地文件导入到模板中指定的位置,可 一次导入一个本地文件,也可一次导入多个本地文件,导入多个时文 件之间用逗号分开,文件名可用引用变量代替。include指令的语法格 式如下:
使用方法赋值 ,创建Book类,有对应属 性的get、set方法:
Book book=new Book(); Hashtable book=new Hashtable(); book.setBookname("JSP教程"); book.put("bookname","JSP教材"); book.setBookauthor("sunyang"); book.put("bookauthor", "sunyang"); context.put("book", book); context.put("book", book);
变量引用有两种赋值方式:一种是在Java程序中赋值:
context.put("name", "Velocity");
另一种是使用set指令赋值:
#set($username="sunyang") hello,$username
Velocity的引用(2) 的引用( ) 的引用
2.属性引用 属性引用是由$、点号(.)和VTL标识符组成的,例如:
说明:使用parse指令包含的文件必须放在TEMPLATE_ROOT目录下。
Velocity的指令(7) 的指令( ) 的指令
6.停止执行的stop指令 stop指令经常被使用在调试过程中,它可停止模板引擎的执行并返 回,语法格式如下:
Velocity的引用(3) 的引用( ) 的引用
3.方法引用 方法引用由$、VTL标识符和方法体组成,下面是使用方法引用的 例子:
$book.getBookid() $book.setBookname("JSP教程")
$book.getBookid()这种形式和属性引用中的方法赋值是一样的,而 “$book.setBookname("JSP教程")”这种形式则是给属性bookname赋 值。
程序的输出结果如图所示:
Velocity的指令(3) 的指令( ) 的指令
2.进行条件控制的if/elseif/else指令 if/elseif/else指令类似于Java语言中的if…elseif…else指令,可进行 条件控制,格式如下:
#if(condition) ... #elseif(condition2) ... #else ... #end
例如:
#set($type="sunyang") #if($type=="sunyang") 金牌会员 #elseif($type=="common") 普通会员 #else 游客 #end
Velocity的指令(4) 的指令( ) 的指令
3.进行遍历循环的foreach指令 foreach指令可用于进行遍历循环,格式如下:
#include("file") ##包含一个文件 #include("file1","file2",…,"fileN") ##包含多个文件
例如:
#include("main.html") #include("top.html",$main,$footer)
Velocity的指令(6) 的指令( ) 的指令
Velocity的指令(2) 的指令( ) 的指令
当value值为字符串时,须用单引号或双引号包围起来。用单引号 和双引号之间有所不同,用双引号的引用会替换成相应的值,而用单引 号的引用则输出原代码。例如:
#set( $directoryRoot = "www" ) #set( $domain= "sunyang.net.cn" ) #set( $mydomain1 = "$directoryRoot.$domain" ) #set( $mydomain2 = '$directoryRoot.$domain') $mydomain1 $mydomain2
返回
Velocity的指令(1) 的指令( ) 的指令
在Velocity中,引用用来输出动态内容,指令则是用来控制页面的 外观和内容。 1.给引用赋值的set指令 set指令用于给变量引用或属性引用赋值,语法格式如下:
#set(name=value)
参数说明:
name参数:该参数必须是变量引用或属性引用 value参数:该参数可以是变量可以是变量引用、属性引用、 方法引用、字符串、数字、ArrayList或算术表达式。
返回
1.2 Velocity模板 模板
1.2.1 Velocity下载与 安装 1.2.3 Velocity的注释 1.2.5 Velocity的指令 1.2.7 在Web应用程序 中使用Velocity 1.2.2 初识Velocity 1.2.4 Velocity的引用 1.2.6 Velocity的其它 特性
Hale Waihona Puke Baidu
返回
1.2 Velocity模板 模板
Velocity模板语言简称VTL,是一个基于Java的模板引擎。在一个 应用程序中,可以预先使用Velocity模板语言设计好模板,开发人员将 页面显示的数据放入上下文中,Velocity引擎将模板和上下文结合起来, 然后就可生成动态的网页。使用Velocity具有以下几个优点: Velocity是Apache软件组织提供的一项开源项目,可以免费 下载。 Velocity简单,掌握Velocity是一件容易的事情。 Velocity模版中不包含任何Java代码,它将HTML技术和复 杂的业务逻辑划分出来,能简化Web开发。 Velocity不仅可以生成Web页面,还可以从模板中生成SQL、 PostScript和XML,功能强大。 Velocity支持模版的国际化编码转换。
##变量引用 ##属性引用 ##方法引用 ##字符串 ##ArrayList ##算术表达式加法
例如:
#set( $monkey = $bill) #set( $monkey.Blame = $whitehouse.Leak ) #set($monkey.Plan = $spindoctor.weave($web)) #set( $monkey.Friend = "monica" ) #set( $monkey.Say = ["Not", $my, "fault"] ) #set( $number = $foo + 1 )
运行类HelloVelocity,程 序的运行结果如图所示:
返回
Velocity的注释 的注释
在Velocity模板中包括以下两种注释: 单行注释:以##开头。 多行注释:以#*开始,以*#结束。 例如:
##这是单行注释 #* 这是多行注释 这是多行注释 *#
返回
Velocity的引用(1) 的引用( ) 的引用
#parse ("file")
例如:
#parse ("index.vm") #parse ($main)
Velocity引用的作用是为了在模板中显示动态的内容。在Velocity中, 引用分为变量引用、属性引用和方法引用。 1.变量引用 变量引用由$和VTL标识符组成,VTL标识符必须以字母开头,其 余字符可以是字母(a…z 、A…Z)、数字(0…9)、连字符(-)或 下划线(_)。例如:
$username $user-name $user_name $number1
$country.china $user.age
属性引用也有两种赋值方式:一种是使用Hashtable对象赋值;另一种 是使用方法赋值。有如下模板文件:
bookname: $book.bookname bookauthor: $book.bookauthor
使用Hashtable对象在 程序中赋值:
Web网页模板技术 网页模板技术
1.1 Web模板简介 1.2 Velocity模板 1.3 FreeMarker模板
1.1 Web模板简介 模板简介
模板技术提供了一种简洁的方式来生成动态的页面,并将程序逻辑和 视图之间分离开来,从而使程序开发人员只专注于编写底层代码,页面 设计人员只专注于视图方面的设计,这种方式不仅提高了开发效率,还 使得应用程序在长时间运行后依然具有很好的维护性。 模板语言在现代的软件开发中占据着重要的地位,它的功能强大,而 且学习起来又是非常简单,即使不熟悉编程的人也能很快的掌握它。 模板语言可以生成动态的页面,简化Web开发,但是它不仅仅局限于此 ,还有许多地方都可以应用它,比如生成SQL、Email、XML或者程序 源代码,甚至作为其它系统的一个集成组件。 Velocity和FreeMarker是目前流行的两种模板语言,其中Velocity是 Apache Jakarta的一个开源产品,同时它也是一个基于Java的模板引擎, 可方便的对模板进行解析和处理。FreeMarker是另一个优秀的模板语言 ,它的功能也是非常强大,而且适合于MVC模式的Web应用中。
其中,$name被称为Velocity的变量引用,它的值由Java程序来提供。 (2)建立给Velocity变量引用提供值的Java类,类名为“HelloVelocity.java” 主要代码如下:
初识Velocity(2) ( ) 初识
public class HelloVelocity { public static void main(String[] args) { try { Velocity.init(); //初始化Velocity引擎 } catch (Exception e) { e.printStackTrace(); } VelocityContext context = new VelocityContext(); //初始化Velocity上下文 context.put("name", "Velocity"); //把数据填入上下文 StringWriter writer = new StringWriter(); try { //把模板和上下文结合起来 Velocity.mergeTemplate("hello.vm", "ISO-8859-1", context, writer); } catch (Exception e) { e.printStackTrace(); } System.out.println(writer.toString()); //控制台上输出 } }
返回
初识Velocity(1) ( ) 初识
下面通过一个简单实例来初步认识Velocity。 (1)在ecplise中新建一个Java工程,在工程的根目录下建立Velocity模板 文件,Velocity的模板文件以.vm结尾,在这里建立的模板文件的名称为 hello.vm,具体代码如下:
hello,$name
Velocity下载与安装 下载与安装
Velocity的下载网站是“http://velocity.apache.org/”,在此网站上下 载完Velocity以后将其解压缩,会得到两个jar文件:velocity-1.5.jar和 velocity-dep-1.5.jar,其中velocity-1.5.jar包含了Velocity的核心类,但是 它没有Velocity必需的库文件,velocity-dep-1.5.jar不仅包含了构建完整 的Velocity库文件,还有Velocity所有依赖的库文件。将这两个jar文件放 入应用程序的classpath下,就完成了Velocity的安装。
#foreach(Loop) ... #end
foreach指令可进行循环的对象有Vector、Hashtale或Array,例如:
#foreach($book in $booklist) $book #end
Velocity的指令(5) 的指令( ) 的指令
4.可包含文件的include指令 使用include指令可将一个本地文件导入到模板中指定的位置,可 一次导入一个本地文件,也可一次导入多个本地文件,导入多个时文 件之间用逗号分开,文件名可用引用变量代替。include指令的语法格 式如下:
使用方法赋值 ,创建Book类,有对应属 性的get、set方法:
Book book=new Book(); Hashtable book=new Hashtable(); book.setBookname("JSP教程"); book.put("bookname","JSP教材"); book.setBookauthor("sunyang"); book.put("bookauthor", "sunyang"); context.put("book", book); context.put("book", book);
变量引用有两种赋值方式:一种是在Java程序中赋值:
context.put("name", "Velocity");
另一种是使用set指令赋值:
#set($username="sunyang") hello,$username
Velocity的引用(2) 的引用( ) 的引用
2.属性引用 属性引用是由$、点号(.)和VTL标识符组成的,例如:
说明:使用parse指令包含的文件必须放在TEMPLATE_ROOT目录下。
Velocity的指令(7) 的指令( ) 的指令
6.停止执行的stop指令 stop指令经常被使用在调试过程中,它可停止模板引擎的执行并返 回,语法格式如下:
Velocity的引用(3) 的引用( ) 的引用
3.方法引用 方法引用由$、VTL标识符和方法体组成,下面是使用方法引用的 例子:
$book.getBookid() $book.setBookname("JSP教程")
$book.getBookid()这种形式和属性引用中的方法赋值是一样的,而 “$book.setBookname("JSP教程")”这种形式则是给属性bookname赋 值。
程序的输出结果如图所示:
Velocity的指令(3) 的指令( ) 的指令
2.进行条件控制的if/elseif/else指令 if/elseif/else指令类似于Java语言中的if…elseif…else指令,可进行 条件控制,格式如下:
#if(condition) ... #elseif(condition2) ... #else ... #end
例如:
#set($type="sunyang") #if($type=="sunyang") 金牌会员 #elseif($type=="common") 普通会员 #else 游客 #end
Velocity的指令(4) 的指令( ) 的指令
3.进行遍历循环的foreach指令 foreach指令可用于进行遍历循环,格式如下:
#include("file") ##包含一个文件 #include("file1","file2",…,"fileN") ##包含多个文件
例如:
#include("main.html") #include("top.html",$main,$footer)
Velocity的指令(6) 的指令( ) 的指令
Velocity的指令(2) 的指令( ) 的指令
当value值为字符串时,须用单引号或双引号包围起来。用单引号 和双引号之间有所不同,用双引号的引用会替换成相应的值,而用单引 号的引用则输出原代码。例如:
#set( $directoryRoot = "www" ) #set( $domain= "sunyang.net.cn" ) #set( $mydomain1 = "$directoryRoot.$domain" ) #set( $mydomain2 = '$directoryRoot.$domain') $mydomain1 $mydomain2
返回
Velocity的指令(1) 的指令( ) 的指令
在Velocity中,引用用来输出动态内容,指令则是用来控制页面的 外观和内容。 1.给引用赋值的set指令 set指令用于给变量引用或属性引用赋值,语法格式如下:
#set(name=value)
参数说明:
name参数:该参数必须是变量引用或属性引用 value参数:该参数可以是变量可以是变量引用、属性引用、 方法引用、字符串、数字、ArrayList或算术表达式。
返回
1.2 Velocity模板 模板
1.2.1 Velocity下载与 安装 1.2.3 Velocity的注释 1.2.5 Velocity的指令 1.2.7 在Web应用程序 中使用Velocity 1.2.2 初识Velocity 1.2.4 Velocity的引用 1.2.6 Velocity的其它 特性
Hale Waihona Puke Baidu
返回
1.2 Velocity模板 模板
Velocity模板语言简称VTL,是一个基于Java的模板引擎。在一个 应用程序中,可以预先使用Velocity模板语言设计好模板,开发人员将 页面显示的数据放入上下文中,Velocity引擎将模板和上下文结合起来, 然后就可生成动态的网页。使用Velocity具有以下几个优点: Velocity是Apache软件组织提供的一项开源项目,可以免费 下载。 Velocity简单,掌握Velocity是一件容易的事情。 Velocity模版中不包含任何Java代码,它将HTML技术和复 杂的业务逻辑划分出来,能简化Web开发。 Velocity不仅可以生成Web页面,还可以从模板中生成SQL、 PostScript和XML,功能强大。 Velocity支持模版的国际化编码转换。
##变量引用 ##属性引用 ##方法引用 ##字符串 ##ArrayList ##算术表达式加法
例如:
#set( $monkey = $bill) #set( $monkey.Blame = $whitehouse.Leak ) #set($monkey.Plan = $spindoctor.weave($web)) #set( $monkey.Friend = "monica" ) #set( $monkey.Say = ["Not", $my, "fault"] ) #set( $number = $foo + 1 )
运行类HelloVelocity,程 序的运行结果如图所示:
返回
Velocity的注释 的注释
在Velocity模板中包括以下两种注释: 单行注释:以##开头。 多行注释:以#*开始,以*#结束。 例如:
##这是单行注释 #* 这是多行注释 这是多行注释 *#
返回
Velocity的引用(1) 的引用( ) 的引用