dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
门户桌面重新创建最佳实践,第二部分
在前一篇文章中,我推荐了一种基于.portal模板文件重新创建桌面而不丢失权利设置或定制设置的新方法。
简要地说,就是不采用删除以前的桌面并重新创建桌面的方法,而应该基于更新后的.portal模板文件另外创建一个新桌面。当WebLogic管理门户提示模板文件中的资源与库中的已有资源出现冲突时,选择选项2(Replace conflicting Portal Resources with Template version,使用模板版本替换冲突的门户资源)或选项3(Replace markup with Template version,使用模板版本替换增补部分)进行重写。选项3只在WLP 8.1 sp4及以后版本上才有。该方法的优点是:如果选择选项2,就可以保留权利设置;如果选择选项3,则可以保留权利设置和定制设置。那么,是否只要条件允许就应该始终使用选项3呢?继续读完本文您就会发现,选项3不能处理.portal文件中某些特定类型的更改,还需要在刷新桌面之后进行手动修改。让我们使用几个不同的场景进行更详细的说明。
1. 添加页面/book
如果在.portal模板文件中添加新的页面/book,重新部署门户ear文件之后,必须重新创建桌面,才能使终端用户看到新的页面/book。选择选项2或选项3,使新页面/book可见。这两个选项唯一的区别就是,选项3可以保留权利设置和定制设置,而选项2只能保留权利设置。
2. 删除页面/book
如果在.portal模板文件中删除一个页面/book,重新部署门户ear文件之后,终端用户仍然能够看到本应该消失的页面/book。现在,如果按照最佳实践重新创建桌面,并选择选项3进行重写,将仍然能看到已经在模板中删除的页面/book。必须在管理门户中手动移除它。而如果选择选项2,虽然还是会丢失定制,但是不需要手动操作删除的页面/book就会消失。
3. 更改页面/book定义标签
可以将更改页面/book定义标签的操作看作是删除已有的页面/book并使用不同的定义标签创建一个类似的页面/book,考虑一下会出现什么情况?如果选择选项3,将看到复制的页面/book。这样就必须在管理门户中手动删除多余的页面/book。而如果选择选项2,门户将根据.portal模板文件生成一个桌面。
4. 添加新的portlet
考虑创建一个新的portlet,并将其添加到.portal模板中的门户页面中。此时若选择选项3,那么即使重新创建桌面,终端用户还是看不到新portlet,必须手动将新portlet添加到目的页面(虽然新portlet已经在门户库中了)。而如果选择选项2重新创建桌面,无需任何手动操作新portlet就可以显示。
5. 从页面删除portlet
使用选项3重新部署门户应用程序或重新创建桌面后,portlet仍然显示在页面中。而如果选择选项2,重新创建桌面后,删除的portlet就会消失。
6. 不仅从门户页面删除portlet,还要从应用程序删除.portlet文件
使用选项3重新部署门户应用程序或重新创建桌面后,portlet仍然显示在页面中,但是出现了下面的消息:“This portlet is no longer available. Please remove.(该portlet不再有效,请移除。)”这是因为重新部署后,该portlet就不在门户资源库中了。而如果选择选项2重新创建桌面,删除的portlet就会消失。
7. 更改portlet定义标签
这种情况下,甚至都不必重新创建桌面。只需重新部署门户应用程序,该portlet的定义标签就会自动在门户资源库以及现有桌面中更新。终端用户看到的portlet不变。
8. 在.portlet文件中更改portlet定义属性,比如更改标题或内容url
这种情况与情况7相同。重新部署后,来自新的内容url的新标题和数据就会立即在现有桌面中生效,无需重新创建桌面。
9. 在.portal文件中更改portlet实例标签
重新部署门户应用程序后,portlet的显示没有变化。桌面中portlet的实例标签仍然保持不变。使用选项3重新创建桌面后,还是没有变化。使用选项2重新创建桌面后,桌面中的portlet显示了新的实例标签。
10. 更改portlet实例属性,比如标题
可以在.portal模板文件中更改portlet的实例属性,比如标题。它可以与.portlet文件中所定义的定义属性标题不同。使用选项3重新部署门户应用程序或重新创建桌面后,该portlet仍然不显示新的实例属性。只有使用选项2重新创建桌面后,终端用户才可以看到新的实例属性,比如标题。
总之,如果门户应用程序中没有使用定制,通常都选择选项2 (Replace conflicting Portal Resources with Template version);如果门户应用程序中使用了定制,那么就要选择选项3,这样在有些场景下就必须手动修改现有桌面。这些场景包括删除页面/book、更改页面/book定义标签、删除portlet,等等。
另外需要注意的是,作为一个最佳实践,在门户项目开始时,就应该为所有的定义标签和实例标签设定一个好的命名约定。使用什么样的命名约定并不重要,关键是必须有一个命名约定,并且从一开始就坚持遵守。这将会避免将来因更改标签而产生争论。下面这个页面上有Quinton Wall所推荐的标签命名约定:http://dev2dev.bea.com/blog/quinton_wall/archive/2005/08/definition_labe_1.html。
原文出处:
http://dev2dev.bea.com/blog/ljiang2/archive/2005/09/portal_desktop.html
作者其它文章
|