`
hbhgjiangkun
  • 浏览: 95581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

模板引擎 Velocity :动态生成页面

 
阅读更多

最近为实现某些业务要用到动态生成页面,便简单研究了下Velocity开源模版引擎,发现其非常强大。

开源地址:http://www.oschina.net/p/velocity

想必很多java爱好者都是使用eclipse编写程序的,可以在eclipse中加载velocity插件,

Velocity的Eclipse插件的Update地址是:http://propsorter.sourceforge.net/veloeclipse

这样在编写模版文件时可以有比较友好的提示。

Velocity 的 JavaDoc: http://www.oschina.net/uploads/doc/velocity-1.5/index.html

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

模版语言是以 .vm结尾的,语法如下例所示:

<th style="width:8%;height:28px;">#if($isNull=="0")&nbsp;<fontcolor="red">*</font>#end$description</th>

<tdstyle="width:22%;">

#foreach ($entry in $entrys.keySet())

#if($defaultValue==$entry)

<inputtype="radio"id="$name"name="$name"value="$entry"checked>$entrys.get($entry)

#else

<inputtype="radio"id="$name"name="$name"value="$entry">$entrys.get($entry)

#end

#end

</td>

如果想详细了解模版文件的编写语法,可到网上搜索相关资料,会有很多velocity 语法教程的。

在我们的程序中使用模版引擎,需要在配置文件中加入velocity的相应配置,这里我们是在spring中配置的,

<bean id="velocityEngine" class="com.jh.jcs.framework.template.velocity.VelocityTemplateEngine" lazy-init="true" >

<property name="scriptName">

<value>velocity</value>

</property>

<property name="p">

<props>

<prop key="resource.loader">file</prop>

<prop

key="file.resource.loader.description">

Velocity File Resource Loader

</prop>

<prop key="file.resource.loader.class">

org.apache.velocity.runtime.resource.loader.FileResourceLoader

</prop>

<prop key="file.resource.loader.cache">

false

</prop>

<prop key="input.encoding">

UTF-8

</prop>

<prop key="output.encoding">

UTF-8

</prop>

</props>

</property>

<property name="fileExtName">

<set>

<value>vm</value>

</set>

</property>

</bean>

<bean id="textareaTemplateParser" class="com.jh.jcs.framework.template.velocity.InputArgTemplateParser">

<property name="vmFile">

<value>templatetest/textarea.vm</value>

</property>

</bean>

….. …….

这里配置文件内容太多就不全部搬处理,具体详细的配置,可参考网上的资料。

做好了所有的配置,引入了源代码,还需要根据不同的业务做相应的封装,比如我

Map result = businessResourceService.getBusinessResourceTemplateByDataOrder(

false, list);

可以得到按自己定义规则的顺序排列map信息,其中就包括了页面信息。

这时候我们取出页面信息

List<String> contList =(List<String>)result.get(“html”);

这样,我们就根据Velocity,按照我们的字段设置,生成了我们的动态页面,

分享到:
评论

相关推荐

    基于Spring Boot+Vue+Shiro实现的前后端分离的代码生成器项目源码+详细文档,可根据数据库字段动态生成各类型代码

    基于Spring Boot+Vue+Shiro实现的前后端分离... 等各种类型代码,采用 velocity 模板引擎在页面动态配置生成代码,前后端动态权限配置,前端权限精确到 按钮 级别,后端权限精确到 uri 上,QQ授权第三方单用户登录...等

    jetbrick-template是一个新一代Java模板引擎具有高性能和高扩展性

    jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性... 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板。 指令和 Velocity 相似,表达式和 Java 保持一致,易学易用。

    velocity-1.7.jar

    velocity是一个基于java的模板引擎。程序员写一个模版便可生成大量的同结构页面。页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

    spring boot generator 代码生成

    基于springboot 的代码生成工具,通过velocity 模板引擎及数据库表名生成增、删、改、查页面及后台程序!前端基于layui!

    基于SpringBoot的代码生成器的设计和实现.doc

    本系统使用模板引擎Apache Velocity来实现从模型到代码的渲染,使用MySQL数据库来储存模型和模板信息,网页前端使用Vue框架和Ajax技术进行设计。本文对该设计进行了初步的实现,并对代码生成功能进行测试,生成的...

    java版飞机大战源码-migo-freemaker:类似freemaker的Demo

    FreeMarker模板引擎与动态页面静态化 模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易。一般的模板引擎都包含一个模板解析器和一套...

    简易Web框架EasyJWeb源码

    应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,框架充分借签了当前主要流行的开源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎,是...

    alice-code-creator:爱丽丝-代码生成辅助工具

    采用Velocity模板引擎构建并生成代码。 数据模型使用JDBC实现,提供数据类型映射配置页面。 支持模板分组,可以区分不同使用场景定义不同的分组。 灵活的变量级,分组级和模板级参数配置,适应多种场景。 支持网页...

    Freemarker介绍

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...

    poi-tl:Java中以{{template}}模板化的最小word(docx)

    什么是poi-tl FreeMarker,Velocity基于文本模板和数据生成新HTML页面,配置文件等,poi-tl是Word模板引擎,基于Microsoft Word模板和数据生成新的文档。 Word模板拥有丰富的样式,poi-tl在生成的文档中会完美保留...

    apache click-2.3.0框架 例子(1)

    Apache Click 是一个先进的Java企业版的Web应用程序框架... * 支持 Velocity、JSP、FreeMarker 等模板引擎 * 采用 Apache 开源协议 * 支持 JDK 1.4 以及以后的版本 感觉兴趣以的朋友可以下载看一下,这是第一部分。。

    Veloeclipse.ui-2.0.8

    veloeclipse 插件。velocity是一个基于java的模板引擎。程序员写一个模版便可生成大量的同结构页面。页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

    java开发常用jar包

    commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar ...velocity基于java的模板引擎,允许用简单的模板语言来引用java定义的对

    LyonBlog:基于Java8的SSM + Elasticsearch全部检索的个人博客系统

    【概述】 这是在第一版的【个人博客系统】的基础上开发的第二版个人博客系统,基于SSM框架的Java8,Maven...模板引擎: 速度 开源弹框组件: 甜言蜜语 Markdown编辑器: 编辑器 容器: Tomcat9 权限: 阿帕奇·

    NutzWk企业级开源开发框架

    NutzWk是集成了Shiro权限控制、Ehcache缓存、Redis、Email服务、Quartz定时任务、Lucene搜索引擎、Beetl/Velocity模板引擎等技术的开源企业级开发框架。 NutzWk 5.x 运行环境:1、JDK 8 162 +2、Maven 3.5.3 +3、...

    基于jbpm与activiti的工作流平台技术架构介绍

    BPMX3提供了基于数据库内部表、外部表、视图等来生成在线的流程表单的功能,其生成是基于模板,模板可由开发人员进行自定义,也可以采用BPMX3提供的默认模板。生成的表单后,系统管理员还可以对表单进行编辑管理以...

Global site tag (gtag.js) - Google Analytics