关于 resourceURL:
Resource Serving Phase 是在 JSP-286 (Portlet 2.0) 规范中增加的 portlet 生命周期之一, 另一个 Event Phase。
在一个 portlet 生命周期中, serveResource() 方法也就是 Resource Serving Phase 对应的方法, 在请求 ResourceURL 的状态下会被触发。
关于 Resource Serving 生命周期的定义简单来说就是如下几点:
- Resource Serving 生命周期允许 portlet 可以不用调用页面上所有 portlet 的 Render 生命周期而直接传回动态内容
- 在 Portlet 1.0 规范中,portlet 的一个请求往往是返回一整个页面。
- A Resource is requested via a ResourceURL. 得使用 ResourceURL 请求 Resource 生命周期。
- Resource serving 非常适用于动态创建图像文件以及其他二进制资源;为AJAX请求返回 XML, JSON, HTML 片段,等等。
在普通 portlet 开发过程中如果想使用 Resource Serving 生命周期代码如下:
Jsp 代码:
<p><a href="" οnclick="loadXMLDoc('<portlet:resourceURL/>'); return false">
点击调用 Resource Serving 生命周期
</a></p>
Java 代码, 在 继承自 GenericPortlet 的 portlet 实现类中添加:
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
throws PortletException, IOException{
resourceResponse.setContentType("text/html");
resourceResponse.getWriter().write("Resource served successfully!");
}
完成简单的两部,在页面点击按钮,就能成功调用 serverResource() 方法