`
peterwanghao
  • 浏览: 128393 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Portlet在门户中如何布局

 
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->

Portlet 接口规范定义了 portlet 开发标准,确定了 Portlet Portal 之间的调用规则。但并没有定义在一个页面中 Portlet 怎么布局,怎么将多个 portlet 整合在一起展现到一个页面里。各厂商实现方式不尽相同,但一般都是使用 div 标签来定位一个 Portlet ,这样可实现拖拽效果。

Jetspeed 中一个页面包含几个 portlet ,以及每个 portlet 摆放的位置是定义在 psml 中的( psml 可以保存在文件里也可保存到数据库中)。以首页为例,其 psml 定义如下:

<?xml version="1.0" encoding="UTF-8"?>

<page id="/default-page.psml" hidden="false">

<security-constraints>

<security-constraints-ref>public-view</security-constraints-ref>

</security-constraints>

<title>Welcome to Jetspeed 2</title>

<short-title>Welcome to Jetspeed 2</short-title>

<defaults></defaults>

<fragment id="jsmin-1" type="layout" name="jetspeed-layouts::VelocityOneColumn">

<fragment id="jsmin-2" type="layout" name="jetspeed-layouts::VelocityTwoColumns">

<fragment id="jsmin-3" type="portlet" name="j2-admin::LoginPortlet">

<property name="row" value="1"></property>

<property name="column" value="0"></property>

</fragment>

<fragment id="jsmin-4" type="portlet" name="j2-admin::LocaleSelector">

<property name="row" value="0"></property>

<property name="column" value="0"></property>

</fragment>

<fragment id="jsmin-5" type="portlet" name="j2-admin::ForgottenPasswordPortlet">

<property name="row" value="0"></property>

<property name="column" value="1"></property>

</fragment>

</fragment>

<fragment id="jsmin-10" type="layout" name="jetspeed-layouts::VelocityTwoColumns">

<fragment id="jsmin-11" type="portlet" name="j2-admin::WelcomeToJetspeed">

<property name="column" value="0"></property>

<property name="row" value="0"></property>

</fragment>

<fragment id="jsmin-12" type="portlet" name="j2-admin::AboutJetspeed">

<property name="column" value="1"></property>

<property name="row" value="0"></property>

</fragment>

</fragment>

</fragment>

<metadata name="title" xml:lang="fr">Bienvenue a Jetspeed</metadata>

<metadata name="title" xml:lang="ja">Jetspeed 2 へようこそ </metadata>

<metadata name="title" xml:lang="es">¡Bienvenido a Jetspeed 2!</metadata>

<metadata name="title" xml:lang="hu">Köszönti a Jetspeed 2!</metadata>

<metadata name="title" xml:lang="zh"> 欢迎来到 Jetspeed 2</metadata>

<metadata name="title" xml:lang="zh_TW"> 歡迎來到 Jetspeed 2</metadata>

<metadata name="title" xml:lang="ko">Jetspeed 2 오신 것을 환영합니다 </metadata>

</page>

从配置文件中可看到这个页面由 8 个片断组成,可以分为两类:

<!-- [if !supportLists]-->1、 <!-- [endif]-->Portlet jsmin-3 jsmin-4 jsmin-5 jsmin-11 jsmin-12

<!-- [if !supportLists]-->2、 <!-- [endif]-->Layout jsmin-1 jsmin-2 jsmin-10

Portlet 类型的片断是定义要显示哪一个 portlet ,其中参数 column row 定义此 Portlet 在父布局片断中所处的位置。一个 portlet 必定有一个父布局片断。

Layout 类型的片断是指此片断采用什么格式的布局形式,目前包含:一列,两列( 50% 50% ),两列( 15%,85% ),两列( 25%,75% ),三列( 33%,33%,33% ),四列( 20%,30%,30%,20% )。布局片断是通过一个 portlet 来组织页面内容的。

系统会先把 psml 配置读到对象里,然后采用递归的方法从里向外一层层地生成页面代码。仍以首页为例,页面生成的过程如下:

<!-- [if !supportLists]-->1) <!-- [endif]-->生成 Jsmin-3 片断的代码

<!-- [if !supportLists]-->2) <!-- [endif]-->生成 Jsmin-4 片断的代码

<!-- [if !supportLists]-->3) <!-- [endif]-->生成 Jsmin-5 片断的代码

<!-- [if !supportLists]-->4) <!-- [endif]-->生成 Jsmin-2 片断的代码(包含 Jsmin-3 Jsmin-4 Jsmin-5

<!-- [if !supportLists]-->5) <!-- [endif]-->生成 Jsmin-11 片断的代码

<!-- [if !supportLists]-->6) <!-- [endif]-->生成 Jsmin-12 片断的代码

<!-- [if !supportLists]-->7) <!-- [endif]-->生成 Jsmin-10 片断的代码(包含 Jsmin-11 Jsmin-12

8)生成 Jsmin-1 片断的代码(整合页面代码)

分享到:
评论

相关推荐

    portlet开发参考手册

    portlet可以在门户布局中动态插入和移除,提供个性化的用户体验。常见的portlet portal实现有IBM WebSphere Portal、Liferay Portal和Oracle WebCenter等。 portlet开发中还需要关注的主题包括: 1. **内容和视图...

    Portlet规范介绍.rar

    Portlet规范定义了这些组件如何在门户环境中交互、渲染和管理用户界面。本篇文章将深入探讨Portlet的概念、功能、工作原理以及相关的技术标准。 Portlet是Java Portlet API的核心组成部分,它允许开发人员创建可...

    jquery portlet

    拖放功能在portlet场景中尤为重要,因为它允许用户根据个人喜好调整portlet的位置,创建个性化的仪表盘布局。 ### 4. 布局管理 jQuery Portlet 支持多种布局方式,如网格布局、流式布局等,以适应不同尺寸的屏幕和...

    Stringbeans3.5 加载外部portlet应用

    在IT行业中,Portlet是一种可重用的Web组件,它可以在门户环境中运行,提供特定的功能或服务。Stringbeans是一个流行的portlet容器,它允许开发者构建和管理portlet应用。本篇文章将详细探讨如何在Stringbeans 3.5...

    portlet-1_0-fr-spec.rar_java portal_jetspeed_portal_portlet_门户

    在IT行业中,门户(portal)开发是构建大型企业或组织信息系统的常见方法,它提供了一个统一的入口点,用户可以通过这个入口访问各种不同的应用和服务。本主题主要关注Java Portal技术,特别是通过Jetspeed Portal和...

    Liferay portlet 工程示例代码

    Portlet是Liferay Portal中的核心组件,类似于Web应用的迷你窗口,可以嵌入到门户页面上展示内容和服务。Portlets可以是动态的,比如显示实时数据,也可以是静态的,如导航菜单或登录表单。它们通过portlet API与...

    Jboss portal开发环境的搭建以及HelloWorld portlet的开发和发布

    添加这个Portlet到门户布局,访问该布局,你应该能看到“Hello, World!”的显示。 总结,搭建JBoss Portal开发环境并创建HelloWorld Portlet涉及了多个步骤,包括环境配置、项目创建、代码编写、打包和部署。这只是...

    Portlet 2规范

    - **数据共享**:例如,用户在一个Portlet中输入的信息可以被其他Portlet获取和利用。 - **协同工作**:多个用户可以在不同的Portlet中协同编辑同一份文档。 ##### 2. 寿命周期管理 Portlet 2.0规范提供了更强大...

    Portlet 案例项目

    Portlet技术是构建企业级Web应用,特别是门户系统中的关键组件。它允许在单个页面上集成多个可交互的小应用程序,比如新闻展示、日历、论坛等。Liferay是一款流行的开源门户平台,广泛用于实现Portlet的应用。在这个...

    portlet开发指南

    Portlet是一种在Portal中使用的组件,它负责生成动态的内容并将其嵌入到门户页面中。简单来说,Portlet就是一个可以重用的小型应用,它可以显示动态数据,如新闻头条、股票行情等,并且可以根据用户的喜好进行个性化...

    在Dockbar中增加语言Portlet方法

    在IT行业中,Portlet是一种可重用的Web组件,常用于构建portlet应用,例如企业级的门户系统。Dockbar是Liferay Portal等门户框架中的一种功能元素,它提供了一种组织和显示portlet的方式,允许用户自定义其工作环境...

    jboss portlet实现文件上传小项目

    Portlets是portlet容器中的独立组件,可以展示在门户页面上,与用户交互并提供特定的功能。本项目主要讲解如何在JBoss Portal环境下实现文件上传功能。 1. **理解Portlet** - **定义**:Portlet是一种小型的Web...

    Portlet开发指南

    PortletPreferences**:PortletPreferences用于存储用户对Portlet的个性化配置信息,如颜色偏好、布局设置等。这些信息通常是持久化的,可以在用户的多次访问中保持不变。 #### 四、Portlet的基础概念详解 **1. ...

    Portlet

    Portlet是一种在Web应用程序中构建可重用、可组合组件的技术,尤其常见于企业级的portlet容器或门户应用中,如Liferay Portal、IBM WebSphere Portal等。Portlet允许开发者创建可嵌入到门户页面上的小型交互式应用,...

    jetspeed的portlet开发

    5. **Portlet开发探讨**:"基于Jetspeed的Portlet开发探讨.pdf"可能会讨论一些实际开发中的挑战和解决方案,例如portlet的调试技巧、性能监控方法、最佳实践,以及如何解决portlet与门户平台之间的兼容性问题。...

    web-form-portlet.rar_portlet_web form

    在IT行业中,Portlet是一种可重用的Web组件,它被设计用来集成到portlet容器或门户应用程序中。本文将深入探讨“web-form-portlet.rar_portlet_web form”这个主题,介绍如何开发Web表单(Web Form)以及如何利用...

    portlet规范介绍

    它们是可插入的界面组件,能够在门户页面中动态加载和显示数据。每个Portlet可以产生一段称为“片段”的内容,这段内容遵循一定的标记语言规范,如HTML、XHTML或WML,并且可以与其它Portlet的片段组合成更复杂的页面...

Global site tag (gtag.js) - Google Analytics