我已经构建了两个Web应用程序,可以将它们称为App1和App2。
App1有多个页面(Page1.jsp和Page2.jsp)。 App1是一个独立的应用程序,它有一个链接到两个页面的菜单。
App2有多个页面(Page3.jsp和Page4.jsp)。 App2也是一个独立的应用程序,它有一个链接到两个页面的菜单。
现在我想将App1和App2合并到一个超级应用程序中,而无需修改App1或App2。这个超级应用程序应该有一个链接到App1 / Page1.jsp,App1 / Page2.jsp,App2 / Page3.jsp和App2 / Page4.jsp的菜单。
我想到了几种方法:
解决方案1:框架
我可以创建一个菜单框,其中包含一个链接到App1和App2页面的菜单。
我可以有一个单独的框架,用于显示App1和App2的内容。
但是,我并不热衷于使用框架(http://www.html-faq.com/htmlframes/?framesareevil)。
解决方案2:根据网址参数动态构建菜单
超级应用程序可以有一个基于div的菜单,链接到App1和App2。它可以传递URL上的参数,例如APP1 /的Page1.jsp?父= SuperApp。
App1和App2可以根据父参数动态构建菜单。
例如,如果父参数不存在,则App1将使用其常规菜单链接到Page1.jsp和Page2.jsp。
但是,如果父参数存在,那么App1将使用SuperApp菜单(SuperApp / header.html) - 它将动态地将此HTML包含在JSP页面中。此SuperApp菜单将链接到App1和App2中提供的所有页面。
这第二个解决方案可以在不使用框架的情况下工作,但我想探索是否有其他解决方案我没有考虑过?
答案 0 :(得分:1)
如果有第三个Web应用程序负责菜单:
在每个页面中配置一个非常小的JavaScript组件,对菜单应用程序进行AJAX调用以填充它。通常,这将使用带有特殊类或ID的空<div>
来实现。您还有一个脚本(从MenuApp下载),用于查找<div>
并添加菜单。
一些想法:
这方面的主要缺点是额外的回调,尽管如果你已经在使用AJAX,这可能是一个非常低的开销。
BTW,这类似于FaceBook,Google +,Twitter,Pinterest等实现他们的Like,PlusOne等按钮,同时在第三方Web应用程序中进行微创。例如,请参阅:https://developers.google.com/+/plugins/+1button/答案 1 :(得分:0)