-1

私はここ数週間からliferayで働き始めました。liferay プラグインの開発についていくつか質問があります。

  1. プラグイン内にサーブレットを含めることはできますか?
  2. はいの場合、プラグインを使用できるのはどれですか? それはポートレットですか、それともフックですか、それともextですか?
  3. http://liferayhost:8090/url/callbackweb.xml で行っているように、サーブレットをマップするにはどうすればよいですか?
  4. ポートレットまたはフック用の web.xml を作成できますか?

これらのトピックを理解するのを手伝ってください。

4

1 に答える 1

0

プラグイン内にサーブレットを含めることはできますか?

を作成している場合Liferay HookdoRunメソッドはおよび をそれぞれ処理するために使用できる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ませんが、そこで何をしたいのかわかりません。

于 2012-11-26T11:55:00.357 に答える