0

IPC を使用して別のポートレットを呼び出しています

私の問題は、隠しフィールドから値を渡したいということです。

しかし、jsp スクリプトレットを割り当てると

<%! public String projectid= "300015"; %>`

<portlet:param name="projectid" value="<%= projectid%>" />

それは正常に動作しています。

しかし、非表示フィールドから値を渡す必要があります。

<input type="text" name="hiddenprojectidBox" id="hiddenprojectidBox">

その場所で<%= projectid%>

問題が解決しました。それは他の人を助けるかもしれません。隠しフィールドは不要

var portletURL = new Liferay.PortletURL('ACTION_PHASE');
            portletURL.setWindowState("maximized");
            portletURL.setPortletId("apseprojectmgmtportlet_WAR_apseprojectmgmtportlet")
            portletURL.setParameter("_spage", "/apse-projectmgmt-portlet/apse-projectmgmt-portlet/projectCostingSheetAction2");
            portletURL.setPortletMode('view');
            portletURL.setParameter("projectid", projectid);
            portletURL.setParameter("limit", 10); 
            portletURL.setParameter("offset", 0);
            document.getElementById('myForm').action =portletURL.toString();
            document.getElementById('myForm').submit();
4

1 に答える 1

0

liferay javascript api を使用して IPC を使用している場合は、以下のコードが役立ちます。

ポートレット JavaScript の呼び出し、

Liferay.fire('UPDATE_PROJECT', {
   projectId : A.one('<portlet:namespace />hiddenprojectidBox'),
});

ポートレット JavaScript の受信

Liferay.on('UPDATE_PROJECT', function(data) {   
   // When event is being executed, getState of the selected countryCode via ajax call     using resourceURL   
   //data.projectId will give the value of the project id passed from calling portlet
} ); 
于 2013-06-14T06:37:03.380 に答える