论坛首页 Java企业应用论坛

WebLogic Portal 学习笔记(界面显示)

浏览 5120 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-06  
最近在做Portal,用的是Weblogic9.2.3 提供的 Portal,BEA 已经被 Oracle 收购了,这个产品不停止了维护,想找支持也找不到。只能自己一点一点试先总结下门户的界面

任何没有清晰的、易用的界面的应用程序都是不完整的。如果用户无法使用或不愿意使用您的应用程序,那么就算应用程序中集成了再多吸引人的逻辑也无济于事。BEA WebLogic Portal的特性之一就是它丰富的用户界面框架。它们允许开发人员和门户管理员轻松地构造引人注目的用户界面,同时还允许他们定制样式和结构。

  门户用户界面框架组件
  用户界面框架有很多组件。BEA开箱即用地实现了的所有用户界面组件。这些缺省的组件对某些应用程序来说已经足够了,但我们还是很可能需要某个级别的定制。在深入讨论框架和定制之前,先让我们简略地看一下每个用户界面组件以及它们之间的关系。

  观感(look and feel) 观感文件控制着门户应用程序的样式和结构。这些文件都是引用特定皮肤 (即look)和骨架(即feel)的简单XML文件。一个门户的观感是应用在桌面级别上的。虽然门户开发人员会先选择一个门户的观感,但最终还是由门户管理员来做最后的决定。

  皮肤(skin) 门户皮肤就是门户的外观。这个外观由图像、级联样式表(CSS)和JavaScript 函数组成。这些文件一起描述了门户的样式和行为。皮肤还为移动设备包含特定于设备的样式。

  Portal皮肤由位于skin目录下的 skin.properties文件来配置。这个配置文件可用来定义图像、CSS以及JavaScript文件和路径。另外,skin.properties文件还能用于定义与该皮肤一起使用的骨架(skeleton)名称和路径、添加方法到主体onload 和onunload 事件,以及定义附加信息。

  当定制任何默认的安装皮肤时,建议不要把额外的配置更改放在 skin.properties文件中,而是放在一个可选的skin_custom.properties文件里。这样做的原因是门户升级的安装程序会覆盖掉skin.properties和skin文件所做的修改,也就覆盖掉了您所做的配置更改。

  骨架(Skeleton) 门户的感觉取决于它的骨架。门户的结构由背后的XML决定,即到底是.portal XML文件格式还是数据库本身。这个XML文件可以像可从桌面添加和删除的组件一样被修改。每个门户组件都与负责显示它的JavaServer Pages (JSP) 页面相关。这些JSP页面的集合就构成了门户骨架。骨架也可包含特定于设备的JSP,这些JSP指明用于查看移动设备上的Web应用程序的结构。

  门户骨架还能使用skeleton目录下 skeleton.properties文件中的额外配置信息。通常情况下,该文件在创建定制骨架时使用。您可以设置JSP的搜索路径,这样就能在试图查找JSP时使用其他一个或一系列路径。例如,假如您想修改book.jsp,只需简单地给修改后的book.jsp创建一个定制的skeleton目录,并设置JSP搜索路径属性,jsp.search.path: ., ../default。这样,当门户框架不能在当前目录下找到指定文件时,它就会尝试在默认的skeleton目录下去找。

  这使得骨架的定制变得很简单。定制的骨架可以仅修改一个单独的骨架JSP页面。该定制目录将只包含这一个文件,而其他的功能则依赖一个独立的骨架。

  主题(Themes) 骨架和皮肤能共享一个公共的观感子集,也就是一个主题。主题为特殊门户组件使用不同样式和结构提供了一种机制,以便覆盖当前选择的观感。

  Shell 门户的shell控制着门户原则功能部分的位置和对齐,以及任何附加的内容窗口。大多数门户至少会显示一个页眉和一个页脚,但是shell可以被定制成以任何必要的方式包装主窗口。

  布局(Layout)和占位符(placeholder) 门户的页面结构基于它的布局。布局是一种简单的表结构,用来把门户中的组件置入到称为占位符的独立单元中。当创建您自己的布局时,BEA会提供布局样式供您使用。这些样式会描述门户如何放置占位符。

  布局由两个文件定义,一个是<layout_name>.layout文件,另一个是<layout_name>.html.txt文件。.layout文件是用于实际布局组件的XML文件。它就是包含着占位符的文件。而.html.txt文件仅仅是一个被Workshop和administration portal使用的模板。这些工具把.html.txt 文件当作一个模板,使开发人员知道这个布局的效果,并为添加组件到占位符提供了方法。

  菜单(Menus) 两个菜单之一可以在目录导航的门户中使用。这些菜单提供了稍微有点不同的导航级别。这些菜单系统的缺省功能可以通过修改相关的skeleton文件来定制。

  选择皮肤和骨架
  尽管我提到观感(look-and-feel)文件会引用要使用的皮肤和骨架,但是这也不是必要条件。因为定义了皮肤和骨架名称以及路径的观感属性是可选的。那么如何才能使观感文件既不包含外观也不包含感觉呢?答案是无法做到。尝试不用容器来显示内容,就好像尝试把水倒进一个虚构的玻璃杯中。假如观感文件中的一些或所有属性并没有被指定,那么框架就只有依赖于配置好的设置或用户默认的值。以下是选择皮肤和骨架的规则:

  皮肤的命名:

    * 如果没有指定,就使用/framework/skins/default皮肤。
      皮肤的路径:
    * 如果没有指定,就使用/framework/skins/。

  骨架的命名:

    * 如果没有指定,就使用skin.properties中的default.skeleton.id。
    * 如果没有指定default.skeleton.id属性,就使用/framework/skeletons/default。

  骨架的路径:

    * 如果没有指定,就使用skin.properties中的default.skeleton.path。
    * 如果没有指定skin.properties中的default.skeleton.path,就使用/framework /skeletons/。

  门户骨架呈现标签库
  门户从选择的骨架中呈现出来。每个门户 XML组件会映射到一个骨架JSP文件。骨架JSP文件根据一个门户标签库来呈现这些组件。这个标签库就是门户骨架呈现标签库,它包含在render_taglib.jar中。知道库中所有可用标签的工作原理对理解门户的呈视过程和骨架定制很重要。用得最多的呈现标签是<render:beginRender> 与<render:endRender>、<render:writeAttribute>,以及<render:renderChild>与<render:pageUrl>。

   <render:beginRender>和<render:endRender>标签用于启动和结束一个门户组件的呈现过程。门户组件在层次上互相相关。例如,桌面包含顶级目录。而该目录又能包含任何数量的页面或子目录,子目录又可以包含自己的portlet、页面或者子目录。门户组件呈现就依据了这种层次结构。嵌套在门户 XML中的子组件被呈现在它们双亲的<render:beginRender>和 <render:endRender>标签之间。这两个标签包含了开放和封闭的HTML元素,而在这些元素中嵌套的组件会呈现它们自己的 HTML。

  <render:writeAttribute>标签要与<render:beginRender>标签一同使用。因为<render:beginRender>标签呈现了组件的开放 HTML,而<render:writeAttribute>标签则添加属性到这个开放的HTML标签中。

  带有子组件的组件,比如标题栏和标题栏按钮,用<render:renderChild>标签呈现这些子组件。

  在呈现标签库中,标签可以用来创建URL。虽然这些标签在骨架呈现时很有用,但是它们实际上可以在应用程序的任何必要的地方使用。

  <render:pageUrl>标签用于生成一个能导航到特定页面或目录的URL,而<render:windowUrl> 标签则是在指定了特定portel模式和/或状态的情况下,生成一个能导航到特定portel的 URL。<render:resourceUrl>标签则用于为资源建立一个URL,比如JavaScript文件或图像。要生成一个允许提交请求的URL,则要用到<render:postbackUrl>标签。

  呈现顺序和过程
  当定制一个现有的骨架或创建自己的骨架时,不仅理解骨架JSP的呈现顺序非常重要,而且还要知道引用这些JSP的频度。当一个组件被呈现时,就要引用到与它相关的骨架JSP文件。在这个JSP文件中,<render:beginRender>标签封装了所有的用于呈现该组件开放部分的逻辑。记住,门户组件是嵌套的,所有嵌套组件的骨架JSP文件的<render:beginRender>部分是合为一体的。这个过程一直延续到最后嵌套的组件的<render:beginRender>部分被呈现为止。到那时,随着层次的上移,每个骨架JSP文件再次被引用,而在此时就呈现位于<render:endRender>标签之间的内容。由于这个原因,您会发现骨架JSP文件中的大部分逻辑都是被封装在这些呈现标签中的。否则,每个组件的逻辑就会运行两次,而这种情况几乎不可能是我们想要的结果。

  定制布局
  BEA提供了四种布局样式,应该可以包括绝大多数需要的布局样式。然而,有时您还是需要创建定制布局,以获得缺省情况下未能提供的结构。要创建一个定制布局,首先需要复制一个.layout文件以及与它相关的.html.txt文件。

  在.layout文件中,修改<netuix:layout>标签的适当属性,而把Layout 设置为markupType。然后添加并配置这个布局中可用的占位符。

使用WebLogic Portal轻松创建引人注目的用户界面
   发表时间:2010-07-07  
太原始了, sap的portal, 都是可视化调节theme
0 请登录后投票
   发表时间:2010-07-08  
GRDJE 写道
太原始了, sap的portal, 都是可视化调节theme


方案是公司订的,没办法,BEA 的也有可视化的工具,theme也提供的
0 请登录后投票
   发表时间:2010-07-08  
我最近就在一直研究 BEA Weblogic Portal

希望用过的朋友留言讨论曾经遇到的问题、解决方案等等
0 请登录后投票
   发表时间:2010-11-16  
开始学习weblogic portal
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics