搜狐首页 - 新闻 - 体育 - 娱乐 - 财经 - IT - 汽车 - 房产 - 女人 - 短信 - 彩信 - 校友录 - 邮件 - 搜索 - BBS - 搜狗 
搜狐首页 >> 搜狐IT >> 网狐教程-搜狐IT >> 程序开发-网狐教程-搜狐IT >> Java
动态的View Picker Portlet(1)
IT.SOHU.COM  2004-03-24 19:53  作者: Fetchi Chen 
页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭

  大公司经常需要根据员工和合作伙伴的偏好传送不同的信息给他们。虽然WebShpere Portal V5 提供了一些方法来完成这项工作,但是这些方法不是固定的就是需要用户有 portal 管理的知识。本文描述了您可以如何开发一个动态的 View Picker portlet,它能够给新用户提供一个直观的视图来根据他们的兴趣选择 portal 页和 portlet。

  引言

  大型企业公司通常有大量的信息要和它们的员工和合作伙伴进行交流。用户可能想要根据他们自己的偏好来自定义他们的视图。例如,一位员工可能只对阅读他或她的事业单位的新闻感兴趣,然而一位经理或高级管理人员可能想要查阅更大范围的各事业单位之间的信息。虽然 WebShphere Portal V5提供了页面和 portlet 来组织和显示信息,但是它们或者是固定的或者需要用户具有一些 Portal 管理的知识。本文描述了您可以如何开发一个动态的 View Picker portlet,它能够提供给新用户一个直观的视图来根据他们的兴趣选择 portal 页和 Portlet。

  下面是新闻 View Picker Portlet 的一个示例。

 

  图1. 新闻 View Picker Portlet 的示例

  

  设计和实现一个 View Picker Portlet

  在我们开始设计之前,我们需要知道 Portal 如何允许用户通过资源进行控制。下面步骤显示了如何创建一个名为 Test 的页面,它有一个为名为 Test 的用户组准备的视图访问。

  以 Administrator 身份登录。例如,用户 id 为wpsadmin,密码为 wpsadmin。

  选择 Administration、Access、Users and Groups,然后单击 New group 创建一个名为 Test 的组。

  

  图 2. 创建新的组

  

  输入组名 Test,然后单击 OK。

  在组列表中找到并选择新创建的条目 Test。

  选择 New user,然后输入 test123 作为User ID 和 Password。将其他的字段设置为任意值。单击 OK。

  

  图 3. 创建新用户 test123

  

  选择 Portal User Interface,Manage Pages、My Portal,然后单击 New Page 创建一个新的页面。

  

  图 4. 创建新的页面

  

  输入 Test 作为页面标题,然后单击 OK,然后再次单击 OK 回到页面列表。

  找到新建的条目 Test,并在右侧选择钥匙图标设置页面访问许可。

  

  图 5. 设置页面访问许可

  

  选择 Edit Role 找到 User 条目,然后单击 Add 添加 Test 组。

  选中 Test 组的复选框,单击 OK,然后单击 Done。

  

  图 6. 添加 Test 组到 User Role

  

  为 Privileged User 条目取消选中复选框 Allow Propagation和Allow Inheritance,然后单击 OK。这将从 Privileged User 角色中删除 all authenticated portal users 组。

  

  图 7. 取消选中 Privileged User

  

  选择 Log out,然后以 test123 作为用户名和密码 Log in。

  现在,您应该可以在页面行中看到名为 Test 的页了。如果您没有看到,单击右边的箭头按钮,包含 Test 页的页面应该是可见的。

  如果您想取消用户 test123 对视图的访问,您所需要做的是以 Administrator 身份登录,然后从 Test 组中删除成员 test123,再退出重新以用户 test123 登录。

  资源访问许可的概念很简单。要使一个用户能访问一个资源,该用户必须是被分配了一个 View 访问的角色。在 Portlet 设计中,我们将应用同样的规则。通过一个 View.jsp 页提供给用户选择他或她感兴趣的资源——页面或者Portlet。每一个资源由 Administrator 在创建时分配一个组。当用户提交页面,基于前面选择的状态,该 Portlet 将登录的用户 ID 添加到被分配的组或从被分配的组中删除。下面是该设计的几个关键方面:

  资源组使用 WebSphere Portal administration 创建以保持其可移植性。只有名称,而不是潜在的 LDAP 属性被包含。为此,给组名定义了一个命名转换。在本例中,我们使用 placegroup、pagegroup 和 portletgroup 作为顶级、第二级和 Portlet 级页面相应组名的前缀。为提高适应性,前缀字串在特定 Portlet 配置输入参数中定义。在该 Portlet 初始化载入时,它找到所有和特定前缀相同的组名并将它们保存在一块缓存中。由于可能有多个 Portlet 实例被部署在相同的 Portal 上,另一个配置参数 instance ID 被用于区分其缓存。下图显示了缓存的结构:

  

  图 8. 资源组缓存

  

  一旦 View.jsp 被提交,Portlet 就重新分配用户成员关系到新选择的组。下面代码示例显示了这是如何完成的。

  //get user id

  String id = request.getUser().getID();

  .//add id to the selected group gp

  Principal principal = (Principal)UserManager.instance().findById(id);

  boolean done = gp.add(principal);

  GroupManager.instance().sync(gp);

  //remove id from the selected group gp

  Principal principal = (Principal)UserManager.instance().findById(id);

  boolean done = gp.remove(principal);

  GroupManager.instance().sync(gp);

  一个属性文件被用于将组名和更多的描述性文字关连起来。它还通过附带已翻译的文字提供国际化语言支持。

  # ---------------------------- #

  # Resources for Picker Portlet #

  # ---------------------------- #

  #

  # resource title

  #

  text.placegroup.title = Top-level Pages

  text.pagegroup.title = Second-level Pages

  text.portletgroup.title = Portlets

  text.placegroup.newsstand.title = Newsstand

  text.pagegroup.national_news.title = National News

  text.pagegroup.corporate_news.title = Corporate News

  text.portletgroup.cbs_news.title = CBS News

  text.portletgroup.cnn_news.title = CNN News

  text.portletgroup.nbc_news.title = NBC News

  text.portletgroup.cat.title = Caterpillar News

  text.portletgroup.ibm.title = IBM News

  text.portletgroup.ge.title = General Electric News

  

页面功能 【我来说两句】【我要“揪”错】【推荐】【字体: 】【打印】 【关闭





ChinaRen - 繁体版 - 搜狐招聘 - 网站登录 - 帮助中心 - 设置首页 - 广告服务 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright © 2004 Sohu.com Inc. All rights reserved. 搜狐公司 版权所有

相关连接

 ■ 我来说两句
用  户:        匿名发出:
请各位遵纪守法并注意语言文明。
 
*经营许可证编号:京ICP00000008号
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》
短信内容:
手 机
自写包月5分钱/条 更多>>
搜狐天气为你抢先报! 魔力占卜姻缘一线牵!
金币不是赚的是抢的! 爱情玄机任由你游戏!
猪八戒这样泡到紫霞! 帅哥一定要看的宝典!
你受哪颗星星的庇护? 萨达姆最新关押照片!
精彩彩信
[和弦]欧若拉 一生有你
沧海一声笑
[音效]挪威的森林
爆铃 MP3 G点图 动画
[和弦]童话 你到底爱谁
[原唱]一千年以后 断点
[爆笑音效]赚钱拉 野花
[串烧]张韶涵 潘玮柏
精彩短信
[和弦]小薇 好心分手
[音效]当当当当 忘记


搜狐商城
·家电|品牌风扇新品热销
·音乐|秦海璐幸福回味
·图书|《眼镜蛇事件》
更多...