9.5.3 portlet 之间的通信方式-actionURL调用调用
(1)portletA jsp页面设置表单
<%@page import="javax.portlet.PortletRequest"%>
<%@page import="com.liferay.portlet.PortletURLFactoryUtil"%>
<%@page import="com.liferay.portlet.PortletURLFactory"%>
<%@page import="javax.portlet.PortletURL"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState" %>
<%@page import="com.liferay.portal.util.PortalUtil" %>
<%@page import="com.liferay.portal.model.User" %>
<%@page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<!-- theme 标签可以获取plid-->
<%@ taglib uri="http://liferay.com/tld/theme" prefix="theme"%>
<theme:defineObjects/>
<portlet:defineObjects/>
<portlet:actionURL var="updateForm" name="sendata"></portlet:actionURL>
<%
/* 2 - 要传递的 portletid,页面f12可以找到,去掉“p_”
3 - 当前页面的id */
PortletURL saveUrl = PortletURLFactoryUtil.create(request, "portletb_WAR_IPCportlet", plid, PortletRequest.RENDER_PHASE);
%>
<form action="<%=saveUrl.toString()%>&urlparam=urlabc" method="post" name="<portlet:namespace/>form" >
portletA 直接向 portletB 传递:<input type="text" name="id" id="<portlet:namespace/>userName">
<input type="submit" οnclick="<portlet:namespace/>save1()">
</form>
(2) portletB 接收参数
public class PortletB extends MVCPortlet {
@Override
public void doView(RenderRequest renderRequest,
RenderResponse renderResponse) throws IOException, PortletException {
// 直接接收从 portletA 中传过来的值
String aid = ParamUtil.getString(renderRequest, "id");
System.out.println("从 portletA 中传过来的值为:" + aid);
super.doView(renderRequest, renderResponse);
}
}