2

我最近阅读了关于Velocity. 我也在这里阅读了教程。
但我不明白使用 . 有什么好处Velocity。据我所知,我们可以使用 JSP 标签做同样的事情。
那么什么时候有人会Velocity在他的项目中引入并获得什么?

4

3 回答 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 回答