JavaScriptでのURLの操作

LiferayグローバルJavaScriptオブジェクトは、ポータルコンテキストにアクセスするメソッド、オブジェクト、およびプロパティを公開しています。URLで使用する場合は、authTokencurrentURLcurrentURLEncoded、およびPortletURLの4つが役立ちます。Liferay DXPでのJava開発の経験がある場合は、以前にこれらのいくつかを使用したことがあるかもしれません。Liferayグローバルオブジェクトは実行時に自動的に使用可能になるため、追加の依存関係は必要ありません。

このチュートリアルでは、LiferayグローバルJavaScriptオブジェクトを使用してURLを操作する方法について説明します。使用可能なメソッドとプロパティの完全なリストは、このチュートリアルの最後の表に記載されています。

Liferay PortletURL

Liferay.PortletURLオブジェクトは、JavaScriptを介してポートレットAPI URL(actionURLrenderURL、およびresourceURL)を作成するためのメソッドを提供します。以下に設定例を示します。

var portletURL = Liferay.PortletURL.createURL(themeDisplay.getURLControlPanel());

portletURL.setDoAsGroupId('true');
portletURL.setLifecycle(Liferay.PortletURL.ACTION_PHASE);
portletURL.setParameter('cmd', 'add_temp');
portletURL.setParameter('javax.portlet.action', '/document_library/upload_file_entry');
portletURL.setParameter('p_auth', Liferay.authToken);
portletURL.setPortletId(Liferay.PortletKeys.DOCUMENT_LIBRARY);

上記の例で使用されているメソッドとプロパティの詳細については、ポートレットURLのメソッドとプロパティのセクションを参照してください。

Liferay AuthToken

Liferay.authTokenプロパティは、現在の認証トークン値をStringとして保持します。 authTokenは、サービスを呼び出すときに権限を検証するために使用されます。URLでauthTokenを使用するには、以下の例に示すように、Liferay.authTokenをURLのp_authパラメーターとして渡します。

portletURL.setParameter('p_auth', Liferay.authToken);

Liferay CurrentURL

Liferay.currentURLプロパティは、サーバールートからの現在のURLのパスを保持します。

たとえば、以下に示すように、my.domain.com/es/web/guest/homeからチェックした場合、値は/es/web/guest/homeになります。

// Inside my.domain.com/es/web/guest/home
console.log(Liferay.currentURL); // "/es/web/guest/home"

Liferay CurrentURLEncoded

Liferay.currentURLEncodedプロパティは、サーバールートからインターネット経由で安全に送信できるようにASCIIでエンコードされた現在のURLのパスを保持します。

たとえば、以下に示すように、my.domain.com/es/web/guest/homeからチェックした場合、値は%2Fes%2Fweb%2Fguest%2Fhomeになります。

// Inside my.domain.com/es/web/guest/home
console.log(Liferay.currentURLEncoded); // "%2Fes%2Fweb%2Fguest%2Fhome"

ポートレットURLのメソッドとプロパティ

Liferay.PortletURLメソッド:

メソッドパラメーター戻り値
createURLbasePortletURLparams新しいPortletURL(null, params, basePortletURL);
createActionURL 新しいPortletURL(PortletURL.ACTION_PHASE);
createRenderURL 新しいPortletURL(PortletURL.RENDER_PHASE);
createResourceURL 新しいPortletURL(PortletURL.RESOURCE_PHASE);

Liferay.PortletURLプロパティ:

プロパティ
ACTION_PHASE“1”
RENDER_PHASE“0”
RESOURCE_PHASE“2”

ポートレットURLが作成されると、URLをさらに操作するために使用できるいくつかのメソッドにアクセスできます。

メソッド説明パラメーター戻り値
setDoAsGroupIdURLのサイト、組織、またはユーザーグループのIDを設定しますdoAsGroupId更新されたポートレットURLオブジェクト
setDoAsUserId偽装するユーザーのIDを設定しますdoAsUserId更新されたポートレットURLオブジェクト
setEscapeXMLURLをXMLエスケープする必要があるかどうかを設定しますtrueまたはfalse更新されたポートレットURLオブジェクト
setLifecycleこのURLのターゲットポートレットのライフサイクルを設定しますlifecycle更新されたポートレットURLオブジェクト
setNameポートレットURLのjavax.portlet.action名を設定しますname更新されたポートレットURLオブジェクト
setParameter個々のパラメーターを作成するか、既存の予約済みパラメーターを置き換えますkey,value更新されたポートレットURLオブジェクト
setParameters複数のパラメーターを作成するか、既存の予約済みパラメーターを置き換えます{key:value,…}更新されたポートレットURLオブジェクト
setPlidポートレットレイアウトIDを設定しますplid更新されたポートレットURLオブジェクト
setPortletIdターゲットポートレットのIDを設定しますportletId更新されたポートレットURLオブジェクト
setPortletModeURLが要求をトリガーする場合、ポートレットモードを設定しますportletMode更新されたポートレットURLオブジェクト
setResourceIdURLのターゲットリソースのIDを設定しますResourceId更新されたポートレットURLオブジェクト
setSecureURLをセキュアにする(HTTPS)かどうかを設定します。trueまたはfalse更新されたポートレットURLオブジェクト
setWindowStateURLが要求をトリガーする場合、ポートレットのウィンドウ状態を設定しますwindowState更新されたポートレットURLオブジェクト
toStringURLをStringとして返します StringとしてのポートレットURL
_isReservedParamパラメーターが予約されているかどうかを返しますparamNameパラメーターが予約されている場合はtrue

これで、LiferayグローバルJavaScriptオブジェクト内のメソッドを使用してURLを操作する方法がわかりました。

関連トピック

Liferay DXP JavaScript Utilities

Liferay Theme Display

« ThemeDisplay情報へのアクセスLiferay DXP JavaScriptユーティリティ »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています