我拥有中等程度的Java编程经验,以及使用其他语言编写Web应用程序的相当高级的经验。我目前正在学习一些Java Web框架(Spring MVC,Struts。)
在我工作的地方,我们有许多单独的Java Web应用程序,部署在不同的上下文中,并作为单独的战争。一些最老的是servlet,很多是Struts 1,而新的是Spring 3.
大多数现有应用程序都有不一致或没有品牌(图形/装饰),我正在研究的一件事是在我们可以在一个地方维护的多个站点上应用一致的页眉和页脚。理想情况下,它甚至不必与Web应用程序位于同一服务器上。要清楚 - 无论我配置模板,我都希望能够配置http://some.other.server/template而不是WEB-INF /模板。
我想使用 SiteMesh 或具有相同“装饰”方法的东西,但我研究了它,显然在SiteMesh 2中完成此操作的唯一方法是由分叉代码的人完成的并对其进行自定义以允许导入远程模板。 (我在Sitemesh3 Google网上找到了这些信息。)
我刚开始设计这个解决方案,所以我想我们可以使用像 Velocity,Freemarker,Tiles 这样的东西。但是,在我工作的地方,我们很难更新旧应用程序并且保守采用新技术,因此我必须证明一个解决方案具有良好的社区支持,与Struts 1和Spring 3 MVC一起工作,并且相当值得信赖和稳定。
答案 0 :(得分:3)
Velocity具有“资源加载器”的概念,即用于查找可配置的模板文件的接口。已经存在基于URL的资源的加载器。请参阅Velocity Documentation for Resource Loaders。它还具有对缓存的基本支持。
如果你需要一些更复杂的东西,那么提供你自己的资源加载器实现也应该相当容易,我为我的一个项目做了这个并且工作正常。