从外部应用程序发送参数到基于JSR 286的Web Content Viewer portlet

本文涉及的信息只引用由外部系统生成的 URL。WebSphere Portal 架构内生成的 URL 是很简单的,应该使用 IBM Web Content Management 的 UrlCmpnt 标记。

新 Web Content Viewer portlet 的第一版于 2009 年 1 月在 IBM Lotus and WebSphere Portal Business Solutions Catalog 中提供。升级版在 2009 年底发布,其中包括 IBM WebSphere Portal V6.1.5 功能部件包。除了许多新功能之外,升级版也是以 Java Portlet Specification JSR 286 第 2 版为基础的。尽管这包含了许多新功能,但较之早期的 Web Content Viewer(基于 IBM Portlet API 的)也有一个缺点:传递一个参数到查看器 portlet 变得有点复杂。在这篇专栏文章中,您将会有意外的收益。

在 IBM Portlet API 版本的查看器中,您只需要简单地向正在寻找页面的 URL 中添加一个查询参数,该页面上所有的 IBM portlet 将收到该参数,然后您配置 portlet 来监听广播并创建一个如下格式的 URL:

http://[PORTAL_HOST]/[PORTAL_CONTEXT_ROOT]/[PORTAL_PAGE_URL_MAPPING]/?WCM_GLOBAL_CONTEXT=
<pathCmpnt type="noprefixservlet" />/[LIBRARY]/[SITE]/[SITE_AREA_PATH]/[CONTENT]

例如:http://mysystent/wps/portal/home?WCM_GOBAL_CONTEXT=/mynewslib/usnews/news1。

这个 portlet 用起来很简单,但是它也有以下缺点:

由于受到显示的限制,本文中显示的 URL,其中一些可能看起来是由多行构成,但实际上,每个 URL 是连续的一行。

由于参数不能保存在 URL 中,而要保存在会话中(即使在异步使用情况下),因而影响门户服务器内存消耗。

一旦与页面交互,参数将不再在 URL 中 — 而存储在会话中 — 您不再需要将您的选择加入书签。

缓存在浏览器中的静态页面将不再有效,因为选择内容不能被编码成 URL。这意味着浏览器不能分辨新闻 1 和新闻 2 ,因此也不能在浏览器上缓存。

让我们看看在 JSR 286 新时代查看器是如何工作的。

在新的查看器中,您可以在 WebSphere Portal 中使用 URI 分解器框架来从外部系统寻找网页或内容项。URI 分解器框架是一个普通的框架,也可用来促进定制 URI 模式。Web Content Management 定义模式 wcm: 如下:

wcm:path:LIBRARY/SITE_AREA_PATH/CONTENT [[& page=unique_name | object_id] &mapping=mapping | &current=true]

这意味着您可以提供路径给内容,选择提供下面之一:

一个目标页面,使用惟一的页名或其对象 ID 。

一个 URL 映射。

在 URL 中选定的、要在 URI 之前使用的当前页面。

如果您不能提供上述任何一个,WebSphere Portal 自动尝试寻找正确的页面。只有当您正在使用 Web Content Pages 时该方法才有效,在这个 Web Content Pages 中您可以将 Web Content Management 网站区域(site area )映射到门户页面,以便于 WebSphere Portal 意识到它们之间的关联。

因此,现在您如何获取一个完整的 URL 呢?有两个不同的选择:

直接通过 /wps/poc or /wps/mypoc 访问 WebSphere Portal 分解器框架。

为 WebSphere Portal 使用外部应用程序了解的任何 URL。

时间: 2024-10-31 23:11:52

从外部应用程序发送参数到基于JSR 286的Web Content Viewer portlet的相关文章

JSR 286 Portlet的新特性,第2部分: 资源服务、事件与共享呈现参数

在本系列的 第 1 部分 简要回顾了 JSR 168 Portlet,并对 JSR 286 Portlet 的新增特性做了详细的介绍, 本文将通过在 Apache Pluto 2.0 平台上开发和部署 Portlet 应用程序, 向读者介绍 JSR 286 Portlet 新特性的使用方法.本文将首先介绍 JSR 286 参考实 现 Apache Pluto 2.0 平台的构建过程,然后通过在 Apache Pluto 2.0 平台上开发和部署 JSR 286 Portlet 应用程序, 向读者

vc-VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数?

问题描述 VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数? 现要写一个程序甲,甲向乙程序发送命令行参数,乙解析该参数并作相应操作, 现在问题是具体甲怎样向乙发送命令行参数?需要调用哪些API函数? (抱歉还是菜鸟,没有金币悬赏~谢谢各位大神了!) 解决方案 如果a是启动进程B的话,那么CreateProcess就可以启动B,同时带上命令行参数,B解析参数进行动作. 如果B已经启动了,这个其实就是进程通信,最简单的方式是发送消息,PostMessage.B根据消息进行对应的操作

用Portal来集成外部应用程序

程序 随着Portal一步步走向成熟其结构和功能也发生了较大变化,从混和型服务走向以系统框架为核心,应用程序与部署.开发完全分开的阶段,Portal相当与一个骨架一样可以接纳外部的这种技术架构开发的应用程序,使用Portals Bridges模式来连接不同的应用程序,可包括一下几种: 集成Struts MVC模式开发的应用程序:Struts已经成为了用Java创建Web应用的一个最流行的框架工具,Struts所实现的MVC模式给Web应用带来了良好的层次划分,同时也提供了一系列的工具来简化Web

使用Delphi启动和关闭外部应用程序

Delphi与Windows平台紧密结合,编译代码快速高效.作为一种可视化的面向对象开发工具,Delphi可以帮助程序员更轻松.更快速地编写各种Windows应用程序.而且通过编程可以方便地调用其它语言编写的动态库或应用程序,并在不需要时关闭这些外部程序.这一点对许多编程人员非常有用,例如,在采用Delphi进行软件开发的同时,可能需要调用以前采用其它工具开发的应用程序,以免再次重新编写代码,或者需要调用Windows中的记事本和计算器等工具,以便在程序运行过程中记录信息或进行计算等. 在Del

firebug-Javascript程序的参数调用问题

问题描述 Javascript程序的参数调用问题 写了一个小程序,如下 效果是点击 的时候颜色会发生改变,但是效果无法实现,Firebug中一直报错,如下 这说我是形式参数缺失,请问应该如何修改?本人新手,望指教,谢谢! 解决方案 首先参数名称this要改,不能用this做参数名,改为me 第二,你的background-color改为backgroundColor 解决方案二: Python调用(运行)外部程序参数问题javascript调用exe程序(windows)传递参数vc 调用win

通过定制的事件处理程序集成外部应用程序和IBM Content Manager

简介 IBM Content Manager, Version 8.4.1 支持一个用于外部应用程序集成的事件框架.当前支持两种集成类型: 过程集成,专门用于与 FileNet Business Process Manager 的集成 通用集成,用于集成通用外部应用程序 IBM Content Manager, Version 8.4.1(后面简称为 CM8)提供一个用于过程集成的事件处理程序.对于与 FileNet Business Process Manager 之外的其他外部应用程序的集成

.net 调用delphi 端口监听程序传递参数问题

问题描述 .net 调用delphi 端口监听程序传递参数问题 有一个delphi写的监听程序,需要传递参数. 我现在用.net 通过TCP调用,但是不知道为什么,监听程序能够监听到我的程序调用 但是无法接受到我的参数. 这是为什么? 以下是发送代码. try { TcpClient tcp = new TcpClient(server, port);//创建链接 Byte[] data = System.Text.Encoding.UTF8.GetBytes(message);//指定参数 N

C#中通过Process启动的外部第三方程序MainWindowHandle句柄为0

原文 C#中通过Process启动的外部第三方程序MainWindowHandle句柄为0  前几天遇到了一个在C#的winform程序中,启动一个第三方jar程序,并修改jar运行窗体的标题的问题. 大体的需求就是上面说明的那样,下面是当初设想的思路和实现代码. STEP1 // 根据jar文件的路径,启动该jar Process p = Process.Start(jarfilePath);   STEP2 // 引用WindowsAPI中SetWindowText的声明 [System.R

byte 接收数据 断点-控制器给C#上位机窗口程序发送数据的字节接收问题

问题描述 控制器给C#上位机窗口程序发送数据的字节接收问题 现在的问题是:设置断点后,发现接收的字节长度不稳定,最少是4个,最多会达到上千个. 代码原先是这么写的: int lenth = serialPort1.BytesToRead; if (lenth != 0) { Byte[] receiveByte = new Byte[length]; serialPort1.Read(receiveByte, 0, length) --------------------- ----接收的字节转