由于每个页面中,每个Portlet 的运行都相对比较独立,因此,为了实现Porlet 的异步功能,有必要在Request 内区分每个Portlet 的信息。因此,针对Portlet 区分出了两类Request,ActionRequest 和RenderRequest。
ActionRequest
来源:javax.portlet.ActionRequest
ActionRequest 是Portlet 的标准接口,主要标识在页面中单个Portlet 的请求。其作为从Web 客户端到服务端的信息载体。其中的内容为单个Portlet 中的内容。
Liferay实现为:com.liferay.portlet.ActionRequestImpl
RenderRequest
来源:javax.portlet.RenderRequest
RenderRequest 也是Portlet 的标准接口。可用于Portlet 之间的数据共享。只有RenderRequest 能够在服务端容器当中转发请求。
Liferay实现为:com.liferay.portlet.RenderRequestImpl
HttpServletRequest
来源:javax.servlet.http.HttpServletRequest
这个就不用说了,该类的实例是整个页面请求的信息载体。所有Portlet 的信息都打包在这里,可以视作是包涵了众多Portlet 的一个航母。猜想应该是所有Portlet 的ActionRequest 打包后放入HttpServletRequest 内。当单个Portlet 交互时仅仅只从中对应的 ActionRequest 取出数据来用。
根据JSR 168 的定义Portlet 的实现如下:
public class MyPortlet extends GenericPortlet
{
public void doView( RenderRequest request, RenderResponse response )
throws PortletException, IOException
{
//自己的处理代码
}
public void doEdit( RenderRequest request, RenderResponse response )
throws PortletException, IOException
{
//自己的处理代码
}
public void render( RenderRequest request, RenderResponse response )
throws PortletException, IOException
{
//自己的处理代码
}
public void processAction( ActionRequest request, ActionResponse response )
throws PortletException, IOException
{
//ActionRequest类型的request可以使用getParameter
if( request.getParameter(FORM_SUBMIT) != null ) {
// Set form text in the session bean
AaPortletSessionBean sessionBean = getSessionBean(request);
if( sessionBean != null )
sessionBean.setFormText(request.getParameter(FORM_TEXT));
}
}
}
Portlet 中有两种请求方式:actionRequest 和renderRequest 。当portlet容器接收到一个actionRequest 请求的时候,如果请求后的Portlet 模式为view,那么Portlet 容器先调用Portlet 的processAction 方法,然后调用 portlet 的Render 方法去执行portlet 的doView() 方法;如果请求后的Portlet模 式为edit ,则最后去调用doEdit ()方法。当Portlet 容器接收到一个renderRequest 请求的时候,它将不会调用processAction 方法,Portlet 容器直接 调用Render 方法以执行对应的view 模式对应的doView() 方法或是edit 模式对应的doEdit() 方法。
分享到:
相关推荐
Portlet中的Request对象分为ActionRequest和RenderRequest两种,它们分别对应着portlet的不同处理阶段。 - **ActionRequest**:当用户触发portlet的特定操作,例如点击一个按钮或者提交表单时,Portal服务器会向...
1. **请求处理方式的不同**:与Spring框架中的`HttpServletRequest`相比,Portlet使用其自定义的`ActionRequest`和`RenderRequest`。`ActionRequest`主要用于处理用户提交的表单数据,而`RenderRequest`则用于渲染...
在Spring MVC中,我们可以使用Portlet MVC API来创建portlet,这包括PortletMode、WindowState、ActionRequest、RenderRequest和RenderResponse等接口。 "demo" 文件可能包含了这个Spring MVC Portlet的源代码,...
3. **渲染和动作请求**:Portlet有两种主要类型的请求,渲染请求(RenderRequest/RenderResponse)用于生成HTML内容,动作请求(ActionRequest/ActionResponse)处理用户提交的动作事件,如按钮点击。 4. **Portlet...
`PortletRequest`接口定义了一系列通用功能,并被`ActionRequest`、`RenderRequest`、`ResourceRequest`和`EventRequest`四个子接口所继承。`PortletRequest`封装了所有与客户端请求相关的信息,如参数、请求内容、...
1. **PortletActionServlet**:替代了ActionServlet,处理portlet的RenderRequest和ActionRequest。 2. **PortletActionMapping**:将portlet请求映射到相应的PortletAction。 3. **PortletActionForm**:继承自...
- Portlet有预定义的请求类型,如ActionRequest和RenderRequest。 - Portlet支持默认的模式和窗口状态,以指示当前执行的功能和状态。 - 在同一门户页面中可以同时存在多个Portlet。 3. **Portlet的附加功能** ...
7. **Portlet间通信(Portlet-to-Portlet Communication, PTC)**:Liferay支持portlet之间的直接通信,如通过ActionRequest或RenderRequest发送消息。`test-portlet`可以使用portlet action URL或render URL来与另...
在 WebSphere Portal 中开发 Portlet,首先需要了解 Portlet API,包括 Portlet、ActionRequest、ActionResponse、RenderRequest 和 RenderResponse 等接口。Portlet 生命周期包括初始化、渲染、动作处理和销毁四个...
- **PortletRequest**:PortletRequest对象包含了来自用户的请求信息,比如ActionRequest、ResourceRequest和RenderRequest等。 - **PortletResponse**:PortletResponse对象用于Portlet向用户返回响应,可以是...
Portlet通过处理不同的请求类型(如RenderRequest、ActionRequest等)来响应用户的操作。 #### 六、PortletConfig ##### 6.1 初始化参数 PortletConfig提供了对Portlet配置信息的访问,包括初始化参数等。 #####...
Portlet需要实现`Portlet`接口,并处理`ActionRequest`和`RenderRequest`,以及相应的响应。 **4. 主题开发** Liferay 6.2 支持自定义主题,允许开发者根据品牌需求改变门户的外观。通过`ant create-theme`命令,你...
- 通过`ActionRequest`和`ActionResponse`处理动作请求,例如提交表单。 - 通过`RenderRequest`和`RenderResponse`处理渲染请求,生成最终显示的HTML。 - 使用`ResourceRequest`和`ResourceResponse`处理资源请求...
6. `ActionRequest`和`ActionResponse`:处理用户的动作请求,如提交表单或触发某些操作。 7. `EventRequest`和`EventResponse`:用于portlet间的事件通信。 三、Portlet开发流程 1. 创建portlet类,实现`Portlet...
7. **Action请求和Event处理**:portlet可以通过动作请求(ActionRequest)来处理用户交互,或者通过事件处理(EventProcessing)来实现portlet间的通信。 **Portlet的特性** 1. **可重用性**:portlet可以在多个...
- ActionRequest/ActionResponse:处理用户提交的动作,例如按钮点击。 - RenderRequest/RenderResponse:生成最终的HTML响应。 - ResourceRequest/ResourceResponse:处理异步请求,提供更快的响应时间。 6. **...
Portlet Requests和Portlet Response是Portlet处理HTTP请求和生成响应的对象,它们具有多种类型,如ActionRequest、RenderRequest、ActionResponse、RenderResponse等,各自负责不同类型的请求和响应处理。...
3. **portlet请求和响应**:portlet通过处理两种类型的请求——RenderRequest和ActionRequest,来呈现内容或执行业务逻辑。 4. **portlet配置**:portlet的配置信息存储在portlet.xml文件中,定义portlet的元数据和...
- `ActionRequest`和`ActionResponse`:处理用户的动作请求。 #### 四、推荐使用工具 - **JDK**:建议使用JDK 1.6.0、1.5.0或1.4.2。 - **编译器**:推荐使用Jikes 1.22或1.21。 - **构建工具**:Ant 1.7.0是常用...