プラグイン内にサーブレットを含めることはできますか?
を作成している場合Liferay Hook
、doRun
メソッドはおよび をそれぞれ処理するために使用できるRequest
およびResponse
オブジェクトを取得します。Request
Response
たとえば、Request オブジェクトを介してセッション ID、Cookie などを取得できます。
session=request.getSession(false);
Cookie[] cookies = request.getCookies();
また、Response
オブジェクトを使用してリダイレクトを行うことができます。
response.sendRedirect("/PathToYourPage");
したがって、サーブレットとして取得できるほとんどすべてを取得できます。
プラグインを開発している場合は、開発しているのは ではなく であることをPortlet
覚えておいてください。必要に応じてオブジェクトで、以下のコードを使用できますPortlet
Servlet
Portlet
Request
Response
javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("com.liferay.portal.kernel.servlet.PortletServletRequest"));
javax.servlet.http.HttpServletResponse response = (javax.servlet.http.HttpServletResponse) (FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("com.liferay.portal.kernel.servlet.PortletServletResponse"));
Ext
同じ行でsを試すことができます
プラグインを開発している場合Theme
、そこで何を達成したいのか本当にわかりませんServlet
。
それでもできることは、フォルダーのvm
下のテーマのファイルに 1 つの JSP ページを含めることです。templates
$theme.include($themeServletContext, "/myJSP.jsp")
この JSP ページは、WebContent
フォルダの下に配置できます。このmyJSP.jsp
では、JSTL/スクリプトレットを介してRequest/Response
オブジェクトを取得できます
これが2番目の質問にも答えてくれることを願っています。
web.xml で行っているように、サーブレットを http:/liferayhost:8090/url/callback にマップするにはどうすればよいですか?
8090
インデックスに言及することで、アプリケーションサーバーで構成したポート番号になります。
url
値は、Web サーバー (Apache など) で構成した Web アプリケーション名 (war ファイル) の名前になりますuriworkers.properties
。アプリケーションで構成する URL パターンにcallback
なります。Servlet
web.xml
ポートレットまたはフック用の web.xml を作成できますか?
web.xml
と の両方Portlet
に書き込むことができますHook
。フックの場合、 に基本的な構成があれば例外はスローされweb.xml
ませんが、そこで何をしたいのかわかりません。