ポートレットのURLを生成

ポートレットのURLを生成

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

初めてのポートレット開発

手順3/8

前の手順で、ユーザーは複数のポートレットを1つのページに配置できると説明しましたが、 他のポートレットがあなたのページとページを共有する可能性があることは開発者によく知られていません。 これは、アプリケーションのさまざまな機能のURLを、他の方法では定義できないことを意味します。

たとえば、ユーザーが、ブログアプリケーションと同じページに配置するカレンダーアプリケーションを例に考えてみましょう。 それぞれのアプリケーションで、カレンダーイベントとブログエントリを削除する機能を実装するには、両方のアプリケーション開発者がURLにdelパラメーターを追加し、アプリケーションがカレンダーイベントまたはブログエントリを検索して削除できるようにプライマリーキー値を指定します。 そうすると、両方のアプリケーションがこのパラメータを読み取るので、それらの削除機能は競合してしまいます。

システムで生成されたURLはこれを防ぎます。 システムが各機能に対して一意のURLを生成する場合、複数のアプリケーションが完全に調和して共存できます。

view.jspで、次の手順に従ってシステム生成URLをポートレットに作成します。

  1. これらのタグを、<%@ include file="/init.jsp" %>の下、ただし<aui:button-row>タグの上に追加します。

    <portlet:renderURL var="addEntryURL">
        <portlet:param name="mvcPath" value="/edit_entry.jsp"></portlet:param>
    </portlet:renderURL>
    
  2. value="Add Entry"の前に、この属性を<aui:button>タグに追加します。

    onClick="<%= addEntryURL.toString() %>"
    

    view.jspページは次のようになります。

    <%@ include file="/init.jsp" %>
    
    <portlet:renderURL var="addEntryURL">
        <portlet:param name="mvcPath" value="/edit_entry.jsp"></portlet:param>
    </portlet:renderURL>
    
    <aui:button-row>
        <aui:button onClick="<%= addEntryURL.toString() %>" value="Add Entry"></aui:button>
    </aui:button-row>
    

The <portlet:renderURL>タグのvar属性は、システム生成URLを保持するaddEntryURL変数を作成します。 <portlet:param>タグは、URLに追加するURLパラメーターを定義します。 この例では、値が/edit_entry.jspmvcPathという名前のURLパラメーターがURLに追加されます。

注: (guestbook-webモジュールのcom.liferay.docs.guestbook.portletパッケージにある) GuestbookPortletクラスは、LiferayのMVCPortletクラスを拡張します。 Liferay MVCポートレットでは、 mvcPathURLパラメーターは、ポートレット内のページを示します。 ポートレット内の別のページに移動するには、パラメーターmvcPathとともにポータルURLを使用して、特定のページにリンクします。

上記の例では、まだ作成していないアプリケーションのedit_entry.jspページを指す renderURLを作成しました。 注: AlloyUIボタンを使用して、生成URLをたどる必要はありません。 リンクを含む、いかなるHTML構造でも利用できます。 ユーザーはボタンをクリックして、アプリケーションのedit_entry.jspページにアクセスできます。 edit_entry.jspがまだ存在しないため、これは現在エラーを生成します。 次のステップは、edit_entry.jspを作成することです。

« 追加エントリボタンの作成異なるページへのリンク付け »
この記事は役に立ちましたか?
3人中3人がこの記事が役に立ったと言っています