我目前正在构建一个Spring MVC应用程序.我希望使用带有标记库的JSP页面来处理视图层和HTML的格式,但是我遇到了我公司中使用Velocity模板用于同一目的的另一个组.
从我所看到的情况来看,在我看来好像两种方法之间有很多相似之处:
两者都有易于理解的语法.使非开发人员易于理解和使用,允许设计人员专注于HTML/CSS,只需在需要条件/动态内容的少数情况下使用指令/标记库,而无需完全了解Java的.
很容易看出内容的哪一部分是HTML vs哪些是指令/逻辑.
两者都被大量使用和良好支持.
很容易与Spring MVC集成.
但是在比较这两种技术时,我看不出使用一种技术与另一种技术的具体原因.我无法考虑任何特定于Velocity或JSTL的缺点.
所以我的问题是,您认为每种方法的优缺点是什么?如果您使用其中一个构建了一个(Spring)MVC应用程序,那么是什么让您决定使用的视图层技术以及您决定使用其他什么(如果有的话)?
更新:我发现存档Spring框架论坛这同一主题的类似的讨论是在这里,这可能是一些利益给任何人制造JSTL和速度之间的相同的决定,因为我.
我更喜欢使用Velocity,因为使用JSP + JSTL可以允许懒惰/草率的开发人员通过添加scriptlet来解决问题.应该没有理由在视图层中使用Java代码.理解Velocity并不需要太多,事实上我只是在两周内就把它拿起来了.虽然我不喜欢输出的格式,但在大多数情况下它的效果非常好.我们实际上并没有在应用程序的视图层中使用它,而是用于生成供其他浏览器使用的HTML.我们将Velocity的输出保存为文件,然后将其部署到不同的服务器以供其他Web客户端使用.
我实际上稍微喜欢Freemarker和Velocity,以防你开始探索其他选择.比较在这里:
http://freemarker.org/fmVsVel.html
我同意Ben关于通过避免JSP和scriptlet的可能性来强制执行简单视图的陈述.我也喜欢在任何类型的执行环境(JUnit,main()方法)中呈现Freemarker或Velocity模板的能力,而不需要JSP那样的Servlet/JSP容器.