Portlet 统一资源定位符 (URL) 寻址功能

可直接通过统一资源定位符 (URL) 来请求 portlet,以便在没有门户聚集的情况下显示其内容。PortletServingServlet Servlet 将注册每个包含 Portlet 的 Web 应用程序。它类似于容纳资源的 Web 容器的 FileServingServlet Servlet。PortletServingServlet Servlet 支持您通过 URL 请求直接在浏览器全屏页面中呈现 portlet。

可以使用为每个 Portlet 创建的 URL 映射 /<portlet-name> 根据上下文根和名称来调用该 Portlet。例如:
http://<host>:<port>/<context-root>/<portlet-name> For example, 
 http://localhost:9080/portlets/TestPortlet1
上下文根标识包含该 Portlet 的 Web 应用程序归档 (WAR) 文件。该 Portlet 名称使用 WAR 文件的 Portlet 应用程序来标识该 portlet。DefaultDocumentFilter Servlet 仅支持 HTML、UTF8 编码以及基于基本 URL 格式的扩展 URL 格式。

可以使用 PortletServingServlet Servlet,以便一次仅显示一个 portlet。如果想要在页面上聚集多个 portlet,那么需要使用聚集标记库。有关更多信息,请参阅“使用 JavaServer Pages 的 Portlet 聚集”一文。

因为 Portlet 仅提供片段输出,而 Servlet 通常会提供文档输出,所以引入了用于将片段转换为文档的一个机制,称为 PortletDocumentFilter 过滤器。缺省情况下,PortletDocumentFilter 过滤器仅支持转换 HTML。在启动 PortletServingServlet Servlet 以返回文档中的 Portlet 内容之前,将通过使用 Servlet 过滤器来实现该转换。此缺省文档 Servlet 过滤器仅适用于 URL 请求,而不适用于使用 RequestDispatcher 方法的包含或转发。可创建 Servlet 过滤器来支持其他标记的附加文档 Servlet 过滤器。有关更多信息,请参阅“将 Portlet 片段转换为 HTML 文档”一文。

PortletServingServlet Servlet 不会将 Portlet 首选项保留在 XML 文件或数据库中。它会直接将 Portlet 首选项放在 cookie 中以永久存储这些首选项。有关如何更改此行为的其他信息,请参阅“Portlet 引用”一文。

Portlet URL 语法

可添加其他 Portlet 上下文,如 Portlet 方式或窗口状态。可通过使用具有以下结构的 URL 映射来访问 PortletServingServlet Servlet:
http://host:port/context/portlet-name [/portletwindow[/ver [/action | 
 /resource[/id=custom-id][/cacheability]] [/mode] [/state] [rparam][/?name]]]
任何与此不同的 URL 结构都会导致 com.ibm.wsspi.portletcontainer.InvalidURLException 异常。因为将空字符串用作参数值会导致 InvalidURLException 异常,所以不允许这样做。以下是有效参数的列表:
http:// host:port/context/portlet-name
这是访问 Portlet 所必需的最少 URL 内容。将创建称为“default”的缺省 Portlet 窗口。portlet-name 变量是区分大小写的。
/portletwindow
此参数标识 Portlet 窗口。如果选择将其他门户网站上下文信息添加至 URL,那么必须设置此参数。
/ver=major.minor
此可选参数用于定义所使用的 Portlet API 的版本。如果选择将其他门户网站上下文信息添加至 URL,那么必须设置此参数。仅支持版本“1.0”和“2.0”。所有其他版本将导致 InvalidURLException 异常。
/action
如果调用该 Portlet 的操作方法,那么这是必需参数。action 参数会导致调用该 Portlet 的操作进程。在完成该操作后,将自动发出重定向命令以调用呈示进程。要控制后续的呈示进程,文档 Servlet 过滤器可使用名称“com.ibm.websphere.portlet.action”和值“redirect”来设置请求属性,以指定在未调用呈示进程的操作完成后 PortletServingServlet 直接返回。
/mode=view | edit | help | custom-mode
此可选参数定义用于呈示该 Portlet 的 Portlet 方式。缺省方式为“view”。值不区分大小写。 例如,“View”、“view”或“VIEW”会产生相同的方式。
/state=normal | maximized | minimized | custom-state
此可选参数定义用于呈示该 Portlet 的窗口状态。缺省状态为“normal”。值不区分大小写,例如,“Normal”、“normal”或“NORMAL”会产生相同的状态。
* [ /rparam=name *[=value] ]
此可选参数指定该 Portlet 的呈示参数。重复此参数链以提供多个呈示参数。例如, /rparam=invitation/rparam=days=Monday=Tuesday。
?name=value&name2=value2 ...
可选择后跟查询参数。portlet 容器并未显式支持它们,但它们不会使 URL 格式无效。
/action | /resource
此参数定义调用的 Portlet 的方法。有效值为 no、action 或 resource 参数。未定义特定的方法来调用此呈示方法。仅针对 JSR 286 Portlet 支持 resource 参数。
/resource [/id=custom-id] [/cacheability=cacheLevelFull | cacheLevelPortlet | cacheLevelPage]
设置此参数以定义要调用的 Portlet 的方法。不会进行重定向。不调用 Portlet 的其他方法。要控制 resource 参数,可添加其他的标识参数以提供将传递到 Portlet 的资源服务标识。cacheability 参数定义此资源 URL 的高速缓存级别。仅对于 JSR 286 Portlet 支持此参数。
[AIX Solaris HP-UX Linux Windows][z/OS]以下列表包含有效 JSR 168 和 JSR 286 URL 的示例:
  • http:// localhost:9080/sample/WorldClock
  • http:// localhost:9080/sample/WorldClock/myPortlet/ver=1.0/mode=edit/rparam=timezone=UTC
  • http:// localhost:9080/sample/WorldClock/myPortlet/ver=1.0/action/state=maximized?timezone=UTC
  • http://localhost:9080/sample/WorldClock/myPortlet/ver=2.0/resource/id=somePicture.jpg
[IBM i]以下列表包含有效 JSR 168 和 JSR 286 URL 的示例:
  • http:// your.server.name:9080/sample/WorldClock
  • http:// your.server.name:9080/sample/WorldClock/myPortlet/ver=1.0/mode=edit/rparam=timezone=UTC
  • http:// your.server.name:9080/sample/WorldClock/myPortlet/ver=1.0/action/state=maximized?timezone=UTC
  • http://your.server.name:9080/sample/WorldClock/myPortlet/ver=2.0/resource/id=somePicture.jpg

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cport_url_address
文件名:cport_url_address.html