<!-- [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 portal实现有IBM WebSphere Portal、Liferay Portal和Oracle WebCenter等。 portlet开发中还需要关注的主题包括: 1. **内容和视图...
Portlet规范定义了这些组件如何在门户环境中交互、渲染和管理用户界面。本篇文章将深入探讨Portlet的概念、功能、工作原理以及相关的技术标准。 Portlet是Java Portlet API的核心组成部分,它允许开发人员创建可...
拖放功能在portlet场景中尤为重要,因为它允许用户根据个人喜好调整portlet的位置,创建个性化的仪表盘布局。 ### 4. 布局管理 jQuery Portlet 支持多种布局方式,如网格布局、流式布局等,以适应不同尺寸的屏幕和...
在IT行业中,Portlet是一种可重用的Web组件,它可以在门户环境中运行,提供特定的功能或服务。Stringbeans是一个流行的portlet容器,它允许开发者构建和管理portlet应用。本篇文章将详细探讨如何在Stringbeans 3.5...
在IT行业中,门户(portal)开发是构建大型企业或组织信息系统的常见方法,它提供了一个统一的入口点,用户可以通过这个入口访问各种不同的应用和服务。本主题主要关注Java Portal技术,特别是通过Jetspeed Portal和...
Portlet是Liferay Portal中的核心组件,类似于Web应用的迷你窗口,可以嵌入到门户页面上展示内容和服务。Portlets可以是动态的,比如显示实时数据,也可以是静态的,如导航菜单或登录表单。它们通过portlet API与...
添加这个Portlet到门户布局,访问该布局,你应该能看到“Hello, World!”的显示。 总结,搭建JBoss Portal开发环境并创建HelloWorld Portlet涉及了多个步骤,包括环境配置、项目创建、代码编写、打包和部署。这只是...
- **数据共享**:例如,用户在一个Portlet中输入的信息可以被其他Portlet获取和利用。 - **协同工作**:多个用户可以在不同的Portlet中协同编辑同一份文档。 ##### 2. 寿命周期管理 Portlet 2.0规范提供了更强大...
Portlet技术是构建企业级Web应用,特别是门户系统中的关键组件。它允许在单个页面上集成多个可交互的小应用程序,比如新闻展示、日历、论坛等。Liferay是一款流行的开源门户平台,广泛用于实现Portlet的应用。在这个...
Portlet是一种在Portal中使用的组件,它负责生成动态的内容并将其嵌入到门户页面中。简单来说,Portlet就是一个可以重用的小型应用,它可以显示动态数据,如新闻头条、股票行情等,并且可以根据用户的喜好进行个性化...
在IT行业中,Portlet是一种可重用的Web组件,常用于构建portlet应用,例如企业级的门户系统。Dockbar是Liferay Portal等门户框架中的一种功能元素,它提供了一种组织和显示portlet的方式,允许用户自定义其工作环境...
Portlets是portlet容器中的独立组件,可以展示在门户页面上,与用户交互并提供特定的功能。本项目主要讲解如何在JBoss Portal环境下实现文件上传功能。 1. **理解Portlet** - **定义**:Portlet是一种小型的Web...
PortletPreferences**:PortletPreferences用于存储用户对Portlet的个性化配置信息,如颜色偏好、布局设置等。这些信息通常是持久化的,可以在用户的多次访问中保持不变。 #### 四、Portlet的基础概念详解 **1. ...
Portlet是一种在Web应用程序中构建可重用、可组合组件的技术,尤其常见于企业级的portlet容器或门户应用中,如Liferay Portal、IBM WebSphere Portal等。Portlet允许开发者创建可嵌入到门户页面上的小型交互式应用,...
5. **Portlet开发探讨**:"基于Jetspeed的Portlet开发探讨.pdf"可能会讨论一些实际开发中的挑战和解决方案,例如portlet的调试技巧、性能监控方法、最佳实践,以及如何解决portlet与门户平台之间的兼容性问题。...
在IT行业中,Portlet是一种可重用的Web组件,它被设计用来集成到portlet容器或门户应用程序中。本文将深入探讨“web-form-portlet.rar_portlet_web form”这个主题,介绍如何开发Web表单(Web Form)以及如何利用...
它们是可插入的界面组件,能够在门户页面中动态加载和显示数据。每个Portlet可以产生一段称为“片段”的内容,这段内容遵循一定的标记语言规范,如HTML、XHTML或WML,并且可以与其它Portlet的片段组合成更复杂的页面...