我已经构建了两个 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)。
方案二:根据 URL 参数动态构建菜单
超级应用程序可以有一个基于 div 的菜单链接到 App1 和 App2。它可以在 URL 上传递一个参数,例如 App1/Page1.jsp?parent=SuperApp。
App1 和 App2 可以根据 parent 参数动态构建菜单。
例如,如果 parent 参数不存在,那么 App1 将使用其链接到 Page1.jsp 和 Page2.jsp 的正常菜单。
但是,如果 parent 参数存在,那么 App1 将使用 SuperApp 菜单 (SuperApp/header.html) - 它会在 JSP 页面中动态包含此 HTML。此 SuperApp 菜单将链接到 App1 和 App2 中提供的所有页面。
第二个解决方案将在不使用框架的情况下工作,但我想探索是否还有其他我没有考虑过的解决方案?