legacy-knowledge-base
公開されました Jul. 2, 2025

DXP 7.0でデフォルトのクエリ文字列を取得するための「getOriginalServlet」関数を使用する。

written-by

Justin Choi

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

この記事は、OSGiフレームワークを使用する際に、 getOriginalServletRequest 関数を使用して、デフォルトの queryString を取得する方法についての参考ガイドとして提供します。 Liferay Portal 6.2 EEに慣れ親しみ、現在DXP 7.0(7.1、7.2、7.3も)を使用している開発者は、特定のリクエストがOSGiを介して代わりにルーティングされるようになったことに気付くでしょう。

解像度

ユースケースその1

開発者は、カスタムポートレット内で追加のURLパラメータを必要とします。

ユースケースその2

開発者は、レイアウトのデフォルトQuery Stringから、 paramName を追加する必要があります。

  1. 任意のサイトへ移動します。
  2. 右上の「 設定ページ」 のアイコンをクリックします。
  3. [詳細設定] タブをクリックします。
  4. Query String フィールドに以下を入力: p_p_id={portlet name}&_{portlet name}_paramName=paramValue
  5. [Save]ボタンをクリックします。

LPS-56630の修正前は、 getOriginalServletRequest のコマンドは、Liferay以外のリクエストラッパーに遭遇すると停止します。これは、アプリケーションサーバーが実行する内部転送によって作成された最後のサーブレットリスクを保持することを意味しています。

しかし、一部の処理をOSGiに移行することで発生する LPS-56630 を修正するために、 HttpServletRequestWrappers のすべてを「アンラップ」する必要があることが判明した。 これらは、リクエストがOSGiを経由したときにOSGiによって追加されたものでした。

この修正により、OSGiで追加されたものだけでなく、アプリケーションサーバーで追加されたものも同様にアンラップされるようになりました。

この仕組みの例として、刷新された「ネストド・ポートレット」ポートレットをご覧ください。 サンプルでは、通常のリクエストから転送されたリクエストに遷移する際に、解凍処理を停止する方法を紹介しています。

GitHubのソースを参照してください: ネストされたポートレット.

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base