Interstage Portalworks 管理者ガイド
目次 索引 前ページ次ページ

付録F Portletの作成方法について> F.3 Portletの作成手順

F.3.3 Servlet/JSPを利用するPortletの作成

renderの中でPortletRequestDispatcherを取得することにより、PortletからServletやJSPをincludeすることができます。F.3.2で示したサンプルのログインフォームの部分をJSP化したものを以下に示します。

<%-- ----------------------- Sample JSP ----------------------- --%>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>

<%-- Portlet には標準の Tag Library があります --%>
<portlet:defineObjects/>
<%-- このタグを設置することによって、 --%>
<%-- portletConfig portletConfig      --%>
<%-- renderRequest renderRequest      --%>
<%-- renderResponse renderResponse    --%>
<%-- のスクリプト変数が利用できます   --%>
<%
if (renderRequest.getParameter("isLogin") != null &&
    renderRequest.getParameter("isLogin").equals("true")) {
%>
  <%=renderRequest.getParameter("UserName")%> さんがログイン中<br>

<%
}
else {
%>
  <center>
    <h2><p>ログイン画面</p></h2>
    <form action=
     "<portlet:actionURL windowState="normal" portletMode="view">
      <%-- このようなパラメータを付加できます --%>
      <portlet:param name="mode" value="jsp"/>
      </portlet:actionURL>" method="POST">
      ユーザ名を入力してください<br>
      <input type="text" name="UserName" size="8"><br>
      パスワードを入力してください<br>
      <input type="password" name="Password" size="8"><br>
      <input type="reset" value="reset">
      <input type="submit" name="send" value="send">
    </form><br>
  </center>
<%
}
%>

画面出力例

Portlet仕様には、PortletからincludeされるJSPのために標準のTag Libraryが用意されています。使用するには次のように宣言します。

<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>

Portlet Tagには、以下のものがあります。

PortletからServletやJSPをincludeするには、render内で次のようにPortletRequestDispatcherを取得して行います。

PortletRequestDispatcher stDispatcher =
  getPortletContext().getRequestDispatcher("/WEB-INF/jsp/sample.jsp");
stDispatcher.include(request, response);

 


include()メソッドを使用してServlet/JSP以外のコンテンツ(HTMLファイルなど)を取り込む場合、そのコンテンツはUTF-8で記述されている必要があります。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED