Portalworksでは、シナリオからPortletを呼び出すことができます。以下に、Portletを呼び出すシナリオのサンプルを示します。
<%-- ----------------- Active Scenario : PortletCallerScenario ----------------- --%> <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*" %> <%@ include file="/scenario/scenarioInit.jsp" %> <pwst:prologueScenario/> <%-- Portlet の呼出し --%> <% String strService; Hashtable stParam; strService = "Sample"; request.setAttribute("ServiceName", strService); stParam = new Hashtable(); stParam.put("TargetPortlet", "Sample"); stParam.put("PortletMode", "VIEW"); stParam.put("Invoke", "action"); %> <pwst:call service="<%=strService%>" type="HTML" paramObject="<%=stParam%>"/> <pwst:epilogueScenario/> <jsp:forward page="PortletCallerDoc.jsp"/>
<%-- ---------------------- Active Doc : PortletCallerDoc --------------------- --%> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ include file="/scenario/docInit.jsp"%> <pwst:prologueDoc/> <pwst:content type="HTML" contentId="PortletCaller"/> <%-- Portletコンテンツの受け取り --%> <% String strService; strService = (String) request.getAttribute("ServiceName"); %> <pwst:receive service="<%=strService%>" result="portletResult" type="HTML" /> <html> <body> <h1>Portlet 呼出しシナリオ</h1> <hr/> <table border="1"> <tr> <th>Sample</th> </tr> <tr> <td><%=portletResult.getHtmlContent()%></td> </tr> </table> </body> </html>
画面出力例
通常の「シナリオ→シナリオ」や「シナリオ→USP」呼出しと同様に、<call>タグ、<receive>タグを利用してPortletを呼び出せます。一回の<call>タグで呼び出されるのは、指定されたPortlet Applicationに含まれる1つのPortletです。
<call>タグのパラメータには、以下を指定できます。
ServiceName: Portlet Application名
TargetPortlet: Portlet名
PortletMode: 呼び出すPortlet Mode
Invoke: 呼び出すメソッド(actionかrenderを指定できます。通常は、actionを指定しますが、processActionメソッドを呼び出したくない場合は、renderを指定することにより、直接renderメソッドを呼び出すことができます。)
指定方法は、上記Portletを呼び出すシナリオのサンプルの15行目、16行目のように指定します。記述例は、以下のとおりです。
stParam.put("param1", "data1");
stParam.put("param2", "data2");
シナリオから<call>タグを利用して呼び出された場合は、パラメータのInvokeの値によって動作を変更できますが、通常のactionを指定している場合は、TargetPortletのprocessActionメソッドとrenderメソッドを順に呼び出して、得られた結果を返します。
|