4

だから私は一日中グーグルで検索しましたが、これを行う方法の答えはほとんどなく、すべて失敗しました。言うまでもなく、すべてのソリューションは 3 年以上前のものです。LR6.1CEを使用しています。他の答えは常に私をnull値にしたので、簡単な実例に感謝します。

4

3 に答える 3

4

やり方は2~3通りありますが、これをやってみてください。

portletSessionから を取得しportletRequestます。setAttribute()3 つのパラメータを持つメソッドを使用します。3 番目のパラメーターは である必要がありますPortletSession.APPLICATION_SCOPE

ポートレット セッションから 2 番目のポートレットから値を取得します。同じものを使用しAPPLICATION_SCOPEて取得します。

編集:

また、パラメーターを共有するfalseには、次のタグの値を次のようにする必要がありますliferay-portlet.xml

<private-request-attributes>false</private-request-attributes>
<private-session-attributes>false</private-session-attributes>

これらのパラメーターの詳細については、DTDを参照してください。

于 2012-06-20T20:36:52.520 に答える
1

このコードは、他のポートレットからアクションを呼び出し、2 つのパラメーターを送信します。

あなたが使用することができます:

liferay-portlet:renderURL
liferay-portlet:actionURL

<liferay-portlet:actionURL name="addWallEntry" plid="<%= portletId2 %>" portletName="3_WAR_socialnetworkingportlet" var="shareUrl">
<portlet:param name="redirect" value="<%= viewFolderURL.toString() %>" />
<portlet:param name="comments" value="<%= shareMessage %>" />

 </liferay-portlet:actionURL>

<liferay-ui:icon image="share" url="<%= shareUrl %>"/>

また、plid: 参照されるページ レイアウト ID portletName: 参照されるポートレット名の概念を理解する必要があります。

renderURL と actionURL は、標準の tld を拡張する Liferay によって提供されるタグです。注: この種の通信は、ポートレット JSR168 および JSR286 の標準の一部ではありません。

plid は、1 つのポートレットをデプロイするページの ID です。LayOutLocalService を使用して ID を検索するか、データベースで直接クエリを実行できます。

portletName はポートレットの識別子であり、ポートレットのデプロイメント記述子の一部です。この ID は、portletId + WAR + ポートレットをカプセル化する war の名前と、ポートレットがインスタンス化可能な場合はオプションのINSTANCEで構成されます。

于 2012-08-23T22:00:13.610 に答える
0

request 属性と session 属性を含む単純な liferay-portlet.xml のデモを添付します。

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">

<liferay-portlet-app>
    <portlet>
        <portlet-name>testRedirect</portlet-name>
        <icon>/icon.png</icon>
        <instanceable>false</instanceable>
        <private-request-attributes>false</private-request-attributes>
        <private-session-attributes>false</private-session-attributes>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
        <css-class-wrapper>testRedirect-portlet</css-class-wrapper>
    </portlet>
    <role-mapper>
        <role-name>administrator</role-name>
        <role-link>Administrator</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>guest</role-name>
        <role-link>Guest</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>
于 2013-01-24T09:03:23.507 に答える