跳到导航
dev2dev.bea.com.cn
首页 资源中心 dev2dev学堂 在线技术论坛 专家Blog User Group CodeShare
dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
利用门户框架的灵活性解决难题

时间:2005-10-08
作者:Gerald Nunn
浏览次数:
本文关键字:WebLogic Portal 8.1flexiblebookdefault page灵活性默认页
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

  如果要我选出我最喜欢的WebLogic Portal 8.1特性,无疑就是整个框架的灵活性了。对于那些初始设计不太合理的情况,这种灵活性可以带来很大帮助。因为许多框架代码放在/frameworks目录下的各个文件夹中,通常更改或替换现有的行为只需修改适当的框架文件。

  有一次一个客户求助于我,他希望默认页面不要出现在菜单中。他们的基本情况是这样的:他们有一个名为“Home”的book,其默认页面也称为“Home”。标准的多级菜单将会呈现book的顶级菜单项,然后是该页面的下一级菜单项,因此会出现两个“Home”菜单项。他们希望只有一个“Home”菜单项,单击它时会转向book的默认页面。

  最简单的解决方案就是将该页面隐藏,但是他们不想这么做。因为如果隐藏了book的默认页面,那么导航到book时就会显示下一个非隐藏的页面,而不是隐藏的默认页面。这个特性对于某些实现来说是一个优点,但遗憾的是,对于本例,它却成为一个障碍。

  我们讨论了几种解决方案,最后筛选出如下两个方案:

1. 修改菜单代码,使其不生成默认页面的菜单项;

2. 修改菜单代码,使得即使隐藏默认页面,单击book也会正确地导航到该页面。

  开始我们选择的是方案2,因为我们认为,也许在某些场景下默认页面应该显示为菜单项,而此时创建一个配置方案来处理异常会使方案1实现起来更为复杂。

  实现方案2相对来说比较简单,只需更改submenu.jsp,生成一个直接指向book的默认页面而不是book本身的URL。如果URL显式地指向一个隐藏页面,那么仍然可以导航到该页面,所以我们利用这个行为来实现我们的目标。

  遗憾的是,存在一个该行为不能奏效的特例。门户的默认book的默认页面可以被认为是该门户的默认页面,因为当使用根URL访问门户时,将直接定位到该页面。如果门户的默认页面是隐藏的,导航到门户的根URL将会导致定位到默认book的下一个非隐藏页面。因为这个行为发生在门户servlet内部,我们不能随便地修改它。

  因为这个特例,我们只能使用方案1。因此我们修改了菜单代码,使其不生成门户的默认页面的菜单项,但是在其他的所有地方,我们都使用方案2。

  所需修改的代码非常少,而且应用起来很轻松。多亏了这个框架的灵活性,我们才得以解决这个最初设计时没有认真考虑的需求。

原文出处:

http://dev2dev.bea.com/blog/gnunn/archive/2005/08/portals_flexibl_1.html

dot dot dot

dot
  作者其它文章
您对本文的评价
您对这篇文章的看法如何?
太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分