プラグイン内にサーブレットを含めることはできますか?
を作成している場合Liferay Hook、doRunメソッドはおよび をそれぞれ処理するために使用できるRequestおよびResponseオブジェクトを取得します。RequestResponse
たとえば、Request オブジェクトを介してセッション ID、Cookie などを取得できます。
session=request.getSession(false);
Cookie[] cookies = request.getCookies();
また、Responseオブジェクトを使用してリダイレクトを行うことができます。
response.sendRedirect("/PathToYourPage");
したがって、サーブレットとして取得できるほとんどすべてを取得できます。
プラグインを開発している場合は、開発しているのは ではなく であることをPortlet覚えておいてください。必要に応じてオブジェクトで、以下のコードを使用できますPortletServletPortletRequestResponse
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なります。Servletweb.xml
ポートレットまたはフック用の web.xml を作成できますか?
web.xmlと の両方Portletに書き込むことができますHook。フックの場合、 に基本的な構成があれば例外はスローされweb.xmlませんが、そこで何をしたいのかわかりません。