我最近阅读了关于Velocity
. 我也在这里阅读了教程。
但我不明白使用 . 有什么好处Velocity
。据我所知,我们可以使用 JSP 标签做同样的事情。
那么什么时候有人会Velocity
在他的项目中引入并获得什么?
问问题
1159 次
3 回答
2
您可以在需要模板时使用它。例如,您的应用程序可能会向客户发送文本电子邮件,并且必须像这样自定义电子邮件:
亲爱的 $customerName
我们向您宣布明天 $tomorrowDate 以下帐户:
#foreach ($accounts in $account)
使用 Velocity,您可以创建一些电子邮件模板,然后为每个客户定制其内容。您不必将它用作 JSP 的替代品。
于 2012-09-20T07:10:56.263 回答
1
Velocity 是一个模板引擎,JSP 是(一种)脚本引擎。差异非常大,尽管乍一看它们似乎做同样的事情,并且您可以滥用 Velocity 将其真正变成脚本引擎。恕我直言,两个主要区别是:
- Velocity 更安全:默认情况下,它只允许您仅调用您专门放在上下文中的对象的公共方法;JSP 让您几乎可以执行任何 Java 代码
- Velocity 更容易理解:语法简单,语法元素很少;JSP 在其 scriptlet 标记中具有完整的 Java 语法,以及 <% wrappers %>
所以,在所有情况下,没有一个明显优于另一个,你必须自己决定什么时候应该使用它们,是的,它们可以在同一个项目中组合用于不同的目的。
恕我直言,Velocity 在以下情况下效果最佳:
- 在上下文中传递一些变量的模板的简单插值,例如电子邮件模板
- 我认为 Velocity 是实现 MVC 架构中非常干净的View部分的更好选择,因为在 JSP 中,在 JSP 页面中混合一些代码( Controller )更诱人,最后你混合了视图和JSP 页面中的控制器。
- 另一个优点是它的语法可以被非开发人员理解,因此界面设计人员和开发人员都可以在同一个文件上工作
- 它作为一个安全的脚本引擎运行良好,您可以使用它来运行用户生成的代码。
于 2012-09-21T07:44:15.923 回答
1
假设您要创建一个动态文件,例如一个 HTML 文件。您可以在代码中编写文件并添加标签,例如
<body>
"<div>User:" + users.getUserName() + "</div>"
</body>
或者您可以使用 Velocity 创建模板文件
<body>
<div>User: #user.getUserName()</div>
</body>
这样做的好处是您将文件与代码分开,即您可以在以后修改它而无需重新编译代码。
于 2012-09-20T07:26:22.753 回答