質問
1つのポートレットに複数のページ、たとえばJSPページを含めることが可能かどうかを誰かが知っているのかどうか興味があります。さらに、同じポートレット内でこれらの異なるページにリンクすることは可能ですか?
たとえば。単一のポートレットがあるとします。そして、このポートレットでは、初期ビューを、5つの異なるJSPページへのリンクが5つだけあるJSPページにしたいです。ユーザーがこれらの5つのリンクのいずれかをクリックすると、適切なJSPページがポートレットにロードされます。
最終目標は、基本的にすべてがポートレット内に含まれる小さなミニWebサイトです。
今、これはポートレットの最適な使用法ではないかもしれないことを理解していますが、私が取り組んでいるプロジェクトのために、可能かどうかを知りたいです。
ありがとう!
解決
もちろん、ポートレットには複数のJSPを含めることができます。
を使用して、必要なJSPを表示できます。 doHelp
または doEdit
)メソッド:
protected void doView(RenderRequest req, RenderResponse resp)
throws PortletException, IOException, UnavailableException {
resp.setContentType("text/html");
String myview = req.getParameter("myview");
String view = "/WEB-INF/jsp/" + (myview==null ? "bar" : myview) + ".jsp";
PortletRequestDispatcher dispatcher =
getPortletContext().getRequestDispatcher(view);
dispatcher.include(req, resp);
}
パラメーターを使用できます。 でビューを設定します。リンクのあるJSPでは、Portlet APIを使用して、Portletへのリンクを作成/エンコードする必要があります。例:
<portlet:renderURL>
<portlet:param name="myview" value="foo"/>
</portlet:renderURL>
(JSR286 / Portlet 2.0に後れを取っていません-この機能はJSR168 / Portlet 1.0で動作するはずです-したがって、使用している場合は新しいAPIを確認する価値があります。)
所属していません StackOverflow