邮件列表的存档位于 http://nagoya.apache.org。以下是Pluto的邮件列表存档的地址:
当Pluto还在孵化器里的最早的几个星期里,没有生成邮件列表的存档。如果你找不到你想要的 东西,可以去Gmane 找一找更完整的历史记录。Gmane上有关Pluto的存档地址是:
Javaworld上的示例程序是基于JSR 168的最终草案而编写的,最终的规范包含了一些修改, 包括对xsd的一些改动。
你可以从以下地址得到一个可以在Pluto上运行的修改后的版本:
http://nagoya.apache.org/eyebrowse/ReadMsg?listName=pluto-user@jakarta.apache.org&msgNo=27
不。Pluto只是一个portlet容器。如果你想找的是一个Portal的实现,请访问我们的 Jetspeed项目。
如果你还弄不清楚Portal和portlet容器有什么区别的话,请看下一个问题。
在开发者邮件列表上,这个问题是被这样回答的:
| Date: | Tue, 11 Nov 2003 15:21:32 -0600 |
|---|---|
| From: | Craig Walls [wallsc.at.michaels.com] |
| Subject: | setRenderParameter |
| Content-Type: | text/plain; charset=us-ascii |
|
这个问题似乎每过几天就会出现一次,也许应该把它列到FAQ上去。我来试着回答一下。。。 Pluto是一个JSR 168兼容的portlet容器,也就是说,它提供了一个容纳 portlets的地方,仅此而已。可以打这样一个比方:portlet容器(也就是Pluto) 之于portlets,正如鱼缸之于鱼。 Pluto还包含了一个最简单的Portal实现。Portal是在容器的基础之上被实现的, 它可以提供一些额外的特性,这些特性是随着实现的不同而不同的。除了容器本身提 供的功能以外,Portal实现也许还会提供布局和安全等额外的功能。再用一下鱼和 鱼缸的比方,Portal之于portlet容器,就好象鱼缸上的装饰。 也就是说,portlet容器为portlets提供了生存所需要的基本条件,就好象鱼缸为 鱼提供了水(以及容纳水的外壁)一样。Portal实现在portlet容器的基础上提供 了额外的特性,就好象鱼缸里可能还有水草,岩石以及一开一合的小宝箱一样。即使 没有这些玩意,鱼也可以生存;正如portlets即使缺少了安全管理和漂亮的布局引 擎也可以生存一样。但显然,有了那些小玩意,鱼们看起来会更漂亮,正如有了 Portal的那些额外的特性portlets会变的更有用一样。 | |
如果你想得到一个技术性更强的答案,请参考 Pluto体系结构。
首先,请弄清楚Pluto Portal只是用来显示如何在一个Portal中使用Pluto Portlet 容器的。Portal的布局由两个配置文件控制:WEB-INF/data/pageregistry.xml和 WEB-INF/data/portletentityregistry.xml。如何使用这两个文件,见下:
| Date: | Tue, 11 Nov 2003 02:05:43 +0800 |
|---|---|
| From: | Koh Choong Yong [dunpanic.at.mailhost.net] |
| Subject: | Re: portletentityregistry.xml and pageregistry.xml |
| Content-Type: | charset=ISO-8859-1; format=flowed |
|
pageregistry.xml文件描述了Pluto的Portal的布局。如果你在缺省的 pageregistry.xml中用下面的片段正确替换了原来的片段的话,你将看见那两个 portlets不再是并排排列而是上下排列了。在<property>标签中 “value”的属性值是对portletentityregistry.xml文件中定义的 application id和portlet id的引用(见后文)。
<fragment name="row" type="row">
<fragment name="col1" type="column">
<fragment name="p1" type="portlet">
<property name="portlet" value="3.1"/>
</fragment>
</fragment>
</fragment>
<fragment name="row2" type="row">
<fragment name="col2" type="column">
<fragment name="p2" type="portlet">
<property name="portlet" value="4.1"/>
</fragment>
</fragment>
</fragment>
portletentityregistry.xml文件描述了Portal中可用的portlets。 每个<application>标签定义了一个application(对应于Portal容器 中的一个web应用)。在其下可以包含多个<portlet>标签。标签中的id 属性唯一的标识了该application。id不一定非要用数字表示。 <application>标签下的<definition-id>标签定义了在该 application中包含portlets的web应用的名字。 每个<portlet>标签定义了一个portlet。同样,标签中的id属性唯一标 识了一个portlet。注意:application id和portlet id相连接的字符串将映 射到pageregistry.xml文件的<property>标签的value属性上。 <portlet>标签下的<definition-id<是一个相连接的id字符串, 它用来标识application中的portlet。它是对相应web应用的portlet.xml文件 中<portlet-name>标签的引用。在缺省的设置中:
<definition-id>testsuite.TestPortlet2</definition-id>
它引用的是在testsuite这个web应用中的TestPortlet2这个portlet。 在<portlet>标签下的每个<preference>标签都定义了一个 PortletPreferences中的名值对。在JSP页中,这些属性可以通过如下代码片段 获取:
PortletPreferences preferences = renderRequest.getPreferences();
String testPermanence = preferences.getValue("TEST_PERMANENCE", "Default");
out.println(testPermanence);
| |