我目前正在构建一个Spring MVC应用程序。我希望使用带有标记库的JSP页面来处理视图层和HTML的格式,但是我在公司中遇到了另一个使用Velocity模板用于相同目的的组。
从我所看到的情况来看,在我看来两种方法之间有很多相似之处:
但是在比较这两种技术时,我看不出使用其中一种技术的具体原因。我无法考虑任何特定于Velocity或JSTL的缺点。
所以我的问题是,你认为每个人的利弊是什么?如果您使用其中一个构建了一个(Spring)MVC应用程序,那么是什么让您决定使用的视图层技术以及您决定使用哪一个(如果有的话)?
更新:我在Spring Framework论坛的here上找到了对此相同主题的类似讨论,这可能是任何在JSTL和JSTL之间作出相同决定的人所感兴趣的。像我一样速度。
答案 0 :(得分:8)
我更喜欢使用Velocity,因为使用JSP + JSTL可以允许懒惰/草率的开发人员通过添加scriptlet来解决问题。应该没有理由在视图层中使用Java代码。理解Velocity并不需要太多,事实上我只是在两周左右就把它拿起来了。虽然我不喜欢输出的格式,但在大多数情况下它的效果非常好。我们实际上并没有在应用程序的视图层中使用它,而是用于生成供其他浏览器使用的HTML。我们将Velocity的输出保存为文件,然后将其部署到不同的服务器以供其他Web客户端使用。
答案 1 :(得分:6)
我实际上稍微喜欢Freemarker和Velocity,以防你开始探索其他选择。比较在这里:
http://freemarker.org/fmVsVel.html
我同意Ben关于通过避免JSP和scriptlet的可能性来强制执行简单视图的声明。我也喜欢在任何类型的执行环境(JUnit,main()方法)中呈现Freemarker或Velocity模板的能力,而不需要JSP那样的Servlet / JSP容器。
答案 2 :(得分:2)
JSP在视觉上区别于嵌入式HTML也更加困难。使用Velocity,非常明显。
此外,VelocityTools包提供了大量附加功能。