2017-09-18 3 views
0

Liferayでポートレットを開発しました。このポートレットではURLからクエリパラメータの値を取得します。LiferayのURLからパラメータを取得する方法

私はこの方法を試してみましたが、クエリパラメータから「ヌル」値を取得する:

HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(request); 
HttpServletRequest httpOrigReq = PortalUtil.getOriginalServletRequest(httpReq); 
String myValue = httpOrigReq.getParameter("idProcessOrigin"); 

何かアドバイスをいただければ幸いです!

答えて

2

質問に記載されているコードである必要がありますが、ポートレット環境の特殊性は無視されています。通常、ポートレットでは、パラメータの名前を<portlet:namespace/>(または、選択したUIライブラリ内の同等のものがこのJSPタグに相当するもの)で「装飾」します。代わりにパラメータ"idProcessOrigin"を提出するのは、あなたがこれをしたくない場合は

、あなたはまた、コンポーネントの@あなたのportlet-で財産​​com.liferay.portlet.requires-namespaced-parameters=<boolean>を宣言することができる(例えば、むしろSOME_RANDOM_STUFF_idProcessOriginは、適切に置き換えられた名前空間で、もちろん)"<portlet:namespace/>idProcessOrigin"提出したいですプロパティリスト(as carried over from liferay-portlet.xml

ポートレット要求からパラメータを取得するための標準的な方法については、あなたは全くHttpServletRequestを通過する必要はありません - ちょうどPortletRequestgetParameterメソッドを使用します。ただし、このメソッドの結果は、適切に装飾されたパラメータ名(または上記の無効化されたオプション)によって異なります。注:request.getParameter("idProcessOrigin")に電話をするときは、requestがHttpServletRequestではなくPortletRequestである限り、装飾はもう必要ありません。

+0

オラフあなたの答えをありがとう、私はJSPでないコントローラでパラメータを取得したい! –

+0

ここに記載されているように、コントローラのパラメータを正確に取得します。ルールに従って*名前を付けるだけでいいのですが、JSPという名前で名前を付ける方法を文書化しました。 –

関連する問題