| |
深入WebLogic Portal UI编程 |
|
时间: 2006-04-26 来自:天极开发 |
 |
|
五、更新日期数据
现在,我们要实现更新日期的问题-向titlebar中添加portlet最后被更新的日期信息。当然,你可以把此信息放到portlet本身的设计中去;但是,通过这种方式将会节省屏幕空间。
因为BEA没有事先考虑到这一点,所以你需要简单地修改一下titelbar.jsp-把声明移到生成上下文的外面即可。然后,找到声明WindowPresentationContext的scriptlet部分并且把这一部分移动到<render:beginRender>标签的上面。现在,既然你能够从render范围的外部存取window对象,那么,让我们把下列语句添加到</tr>后面:
<tr><td
colspan="3" id="<%=window.getDefinitionLabel()%>.dateCell"></td></tr> | 现在,让我们看一下所有你需要添加到你的portlet上的代码:
<% String myDate = "As of March 1, 2006";
%> document.getElementById('<%=window.getDefinitionLabel()%> .dateCell').innerHTML
= '<%=myDate%>'; | 最后,你会得到如下一幅图像:
六、增加水平和垂直导航功能
加入了上面这些特征之后,你的portal将会更为流行,而且用户可能会要求增加更多的portlet。更多portlet将导致更多的页面(这样会使得页面空间非常拥挤,更不用提速度的问题了)。如果页面数继续增长,你的portal将最后变得很难在超出屏幕范围的组件(更不用提令用户恼火的向旁边卷动的组件了,见下图)之间进行导航。
标准的单级导航方式可以卷动,但是页面导航中的其它行将占居屏幕上方的空间。另外,你可以使用多级菜单方案,但是这将使用户为找到其目标增加更多的鼠标移动(尽管在你的站点有大量的页面时,这种情况也是难以避免的)。
要解决上面难堪的导航问题有一个非常酷的技巧:除了原有的水平导航选项卡外,你可以再增加一种垂直导航。这样可以把你的可视化设计和页面数目扩展许多--几乎加倍原来单个页面的存取空间。
实现这种双向导航方式的关键是使用隐藏的页面设置。
标准的单级菜单代码象下面这样跳过隐藏的页面:
| if (!pageCtx.isHidden() &&
pageCtx.isVisible()) | 你可以在单级菜单代码的后面为你的垂直菜单添加一个DIV区,然后使用相反的检查来运行相同的循环:
我去除了对isVisible的检查--它是冗余的。
现在,通过使用一些简单的CSS技巧,你就可以把这个菜单放到你想要放置的任何地方。在本文示例中,我选择把它放到右边:
<div
id="verticalmenu" style="position:absolute; top:40px; right:20px; width:20px;"> |
至此,你用了不到10分钟实现了该页面的重新调用。
如果已经隐蔽了页面,那么就可以检查并使用你新加入的图标了。尽管可以实现这种类型的导航,但是我更喜欢使用图标方式。在我实现的portal中,选择水平的还是垂直的导航链接是由相应的页面类型决定的。例如,在一个主要面对商业信息的portal中,经常存在一些与主要内容不相关的页面(例如事件日历和业界新闻),但是对你的主要用户来说可能仍然具有一定参考价值。这些"工具"页面会把他们自然地导向其它不同的导航模型--它们独立于portal的中心内容。
在BEA
WebLogic Portal service pack
4之前,在API中存在一处不太合适的地方-pageCtx.isHidden()从不返回true,因为该框架能够从页面列表中提取隐藏的页面(在把该隐藏页面返回到预定的上下文之前)。不过,你仍然能够使用隐藏的页面,但是你必须硬编码它们的值,而不是简单地通过增加更多隐藏的页面来动态地扩展你的垂直导航。因此,为了确保你的硬编码具有可移植性,请确保对链接使用了render标签,如下所示:
| <a href="<render:pageUrl pageLabel="
hackinguiNews"/>">News</a> | 总之,就算你的用户对你第一次发布你的portal感到非常高兴,甚至于从未要求过什么;但是,现在你可以通过仅付出一点点努力而带给他们一些额外的惊喜了。
|
|
|
|
|
|
标签NewsAbout错误:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
|
|
|
|
|
|