3

1 つのポートレットに複数のページ (たとえば JSP ページ) を含めることができるかどうかを誰かが知っているかどうか知りたいです。さらに、同じポートレット内でこれらの異なるページにリンクすることは可能ですか?

例えば。ポートレットが 1 つあるとします。このポートレットでは、最初のビューを、5 つの異なる JSP ページへのリンクが 5 つだけある JSP ページにしたいと考えています。ユーザーがこれら 5 つのリンクのいずれかをクリックすると、適切な JSP ページがポートレットにロードされます。

最終的な目標は、基本的に、すべてがポートレット内に含まれる小さなミニ Web サイトです。

これがポートレットの最適な使用方法ではないことは理解していますが、現在取り組んでいるプロジェクトのために、それが可能かどうかを知りたいと思っています。

ありがとう!

4

1 に答える 1

4

もちろん、ポートレットには複数のJSPを含めることができます。

doView(またはまたは)メソッドのPortletRequestDispatcherを介して、必要なJSPを表示できます。doHelpdoEdit

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では、ポートレットAPIを使用してポートレットへのリンクを作成/エンコードする必要があります。例えば:

<portlet:renderURL>
  <portlet:param name="myview" value="foo"/>
</portlet:renderURL>

(私は実際にはJSR286 /ポートレット2.0に遅れをとっていません-これはJSR168/ポートレット1.0で動作するはずです-したがって、新しいAPIを使用している場合はチェックする価値があります。)

于 2009-09-10T21:53:03.190 に答える