一般问题

一般问题

我在哪里可以找到Pluto的邮件列表的存档?

我在哪里可以找到Pluto的邮件列表的存档?

邮件列表的存档位于 http://nagoya.apache.org。以下是Pluto的邮件列表存档的地址:

当Pluto还在孵化器里的最早的几个星期里,没有生成邮件列表的存档。如果你找不到你想要的 东西,可以去Gmane 找一找更完整的历史记录。Gmane上有关Pluto的存档地址是:

为什么Javaworld上的bookmark示例程序不能在Pluto下运行?

为什么Javaworld上的bookmark示例程序不能在Pluto下运行?

Javaworld上的示例程序是基于JSR 168的最终草案而编写的,最终的规范包含了一些修改, 包括对xsd的一些改动。

你可以从以下地址得到一个可以在Pluto上运行的修改后的版本:

http://nagoya.apache.org/eyebrowse/ReadMsg?listName=pluto-user@jakarta.apache.org&msgNo=27

体系结构

体系结构

Pluto是一个功能完全的Portal的实现么?

Pluto是一个功能完全的Portal的实现么?

不。Pluto只是一个portlet容器。如果你想找的是一个Portal的实现,请访问我们的 Jetspeed项目。

如果你还弄不清楚Portal和portlet容器有什么区别的话,请看下一个问题。

Portal和Portlet容器的区别是什么?

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?

我该如何配置Pluto Portal?

首先,请弄清楚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);