我有一个设计糟糕的多WAR Web应用程序。有一个WAR负责处理对数据库的某些授权,并使用jsp标记库定义标准网页。主WAR基本上检查用户的权限,而不是基于此权限,显示指向其他部署的WARS的上下文路径的链接。其他每个部署的WAR都包含此自定义标记lib。
我正在重新设计这个应用程序,我想要保留的一件好事是我们有其他项目团队开发了这些WAR模块,这些模块“插入”我们当前的系统以利用我们的其他东西必须提供。
我不完全确定如何处理页面模板。我需要一个模板系统,它很容易在多个战争中使用(我在考虑jsp片段?)。我真的只需要定义一致的标题和主导航部分。页面上显示的其他内容取决于单个Web项目。
有什么建议吗?
我希望这很清楚,如果不是,我可以详细说明。
答案 0 :(得分:3)
过去使用Sitemesh
做了类似的事情我们定义了一个名为skins-app的新网络应用程序,它只有所有其他需要的公共页眉,页脚,导航栏。 Sitemesh通过skins-app
中名为WEB-INF / decorators.xml的文件进行配置然后在任何消费的webapp中,你也添加一个WEB-INF / decorators.xml。
并指出您的网页是由其他应用的皮肤“装饰”
<decorator name="main" page="/decorators/layout.jsp" webapp="skins-app">
<pattern>/*</pattern>
</decorator>
如果需要从“装饰”中排除任何页面,您可以在您的消费网络应用中包含详细的包含/排除。请查看Sitemesh链接页面上的Visual Example。