1
8
自从Web应用程序出现以来,人们开始考虑在许多应用程序(包括Web应用程序)中分离关注点。挑战是将什么是视图代码和什么是业务代码或逻辑代码分开。当JSP第一次出现时,许多人直接在JSP中编写大量的逻辑(比如DB访问等),打破了 关注点分离 (JSP应该负责表示,而不是逻辑)。 Velocity、FreeMarker等都是模板化的引擎,允许将UI逻辑和业务逻辑分离开来,从而在最小化业务方面的更改的同时促进了表示的更改。这些模板引擎具有执行常见UI任务的功能,例如,如果某些条件为真,则显示HTML块,或者迭代列表。 同时在视图外维护逻辑代码 . 从长远来看,这是维护复杂应用程序的基础。 |
2
4
我认为有必要指出,与JSP/ASP.NET作为模板机制相比,Velocity/Nvelocity确实“加强”了关注的分离。 与…JSP/ASP.NET的%.gt;允许任何Java/.NET代码。这就是为什么有时您确实在这些文件中看到业务逻辑代码的原因。 使用Velocity/Nvelocity,您不能嵌入长系列的代码。相反,您实际上必须传递计算值,速度/不速度将根据模板的设计方式获取并显示这些值。 另一点是,它们可以在Web容器环境之外工作(至少速度可以是afaik)。假设您使用JSP/ASP.NET设计了一个报告模板。它在网络上运行良好。然后突然有一个变更请求从桌面应用程序中完成。您可以初始化velocity/nvelocity,计算值,然后渲染模板,而不是将Web容器嵌入其中。 |
3
3
它是一个模板引擎。如果你有很多混合了可变内容的静态文本,模板是减少你必须做的工作量的一个很好的方法。 它比string.format或加载concatenation要好得多,因为它不是重复的或容易出错的,而且更易于维护,因为您只需查看它就可以准确地了解模板的功能。 |
4
0
我们使用模板生成生产、UAT、系统测试、应急系统等的配置文件。 我们有一个主弹簧配置文件,在其中插入一个属性文件。我们有一个由Velocity解析的主属性文件,这允许我们将所有系统设置保存在一个文件中。 |
5
0
作为奖励,对于感兴趣的人,我建议阅读以下内容:
这些是关于StringTemplate的链接,这是一个由编写Antlr的Terence Parr开发的模板引擎,它是一个到处都使用的解析器(例如:Hibernate使用Antlr)。 |
6
0
1-速度引擎实际上合并了
实时数据
与
|