浏览 3678 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-01-11
gigix 写道 准确说应该是xWork Porlet。所有的Java代码和xWork相关的配置文件见附件。
本篇主要是对WebWork和portal的无缝集成进行讨论。 集成目标: [list]直接将已有的WebWork应用无缝集成到Portal中[/list:u] [list]快速高效的开发portlet应用[/list:u] 集成方案 1、 统一提供一个WebWorkDispatcherPortlet,作为所有使用WebWork开发的portlet派遣器。这样,不必为每个portlet都开发一个继承javax.portlet.GenericPortlet的子类。其实WebWorkDispatcherPortlet和ServletDispatcher很类似的。 2、 Portlet的render()和processAction()方法都分别对应一个WebWork的Action。一般情况,render的具体实现doView,doEdit都分别对应一个Action,可以分别在portlet.xml文件种定义。如果是执行processAction()它就会分别执行2个Action。 portlet.xml文件配置例子如下: <portlet> <portlet-name>MyHelloWorldPortlet</portlet-name> <portlet-class>com.opensymphony.webwork.portlet.WebWorkDispatchPortlet</portlet-class> <init-param> <name>view_action</name> <value>/MyPortlet/view.action</value> </init-param> <init-param> <name>edit_action</name> <value>/MyPortlet/edit.action</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> <portlet-mode>EDIT</portlet-mode> </supports> <portlet-info> <title>Hello World Portlet</title> <keywords>Hello, world, test</keywords> </portlet-info> <portlet-preferences> <preference> <name>GreetText</name> <value>Hello WebWork World.</value> </preference> </portlet-preferences> </portlet> 3、 实现二种WebWork Result。 PortalActionResult:用于processAction()方法执行的Action,它只是保存Result的一些信息(例如:转发页面的url),并不真正转发到相应的视图。 PortalRenderResult:用于render()方法执行的Action。它首先查找是否有PortalActionResult保存的result信息,如果有则使用它,如果没有找到则使用自己的Result信息;然后它将调用PortletRequestDispatcher的include()方法,呈现最终视图。 4、 由PortalActionContext(类似WebWorkActionContext)提供直接对Portal相关的API访问。例如:PortletRequest,PortletContext,PortletSession(注意:PortletSession有两个不同的范围:APPLICATION_SCOPE 和PORTLET_SCOPE)等。另一种可选方法是提供一系列Portlet*Aware接口,访问Portal的这些API。 5、 提供一个PortletRequestParameterInterceptor,自动将PortletRequest的parameter设置到Action的属性中。功能类似于Xwork的ParametersInterceptor。一种可选择的方法是在WebWorkDispatcherPortlet中直接将parameter设为PortletRequest的parameter。 6、 提供一个PortletURL标签库。 在调用处理动作(process action)时,将设置二个paramter:"WWAction","WWNameSpace",用来表示该处理动作对应的WebWork Action。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |