|
|
WebOTX Manual V10.4 (第4版) 目次を表示 |




| 項目 | 説明 |
|---|---|
| 動的Webモジュール | 必須。プロジェクトがDynamic Web Moduleとして配備されることを可能にします。 |
| Java | 必須。Javaのサポートを可能にします。 |
| JSR ポートレット | 必須。JSRポートレットのサポートを可能にします。 |

| 項目 | 説明 |
|---|---|
| ポートレットプロジェクト | プロジェクトのルートディレクトリです。この配下で作業をします。 |
| src | ポートレットプロジェクトのソースフォルダです。ポートレットアプリケーションで利用するポートレットやJavaファイルなどをパッケージ構成で格納します。 |
| WebContent | コンテキストディレクトリです。プロジェクト作成時に、任意のディレクトリに変更することができます。 |
| MANIFEST.MF | マニフェストファイルです。このファイルでは Portal Tool のバージョンが記述されています。 |
| WEB-INF | Webアプリケーションの隠蔽ディレクトリです。この配下にあるリソースは、クライアント(WEBブラウザ)からアクセスすることはできません。Webアプリケーション・プログラムが利用する定義ファイルなどを格納します。 |
| lib | 開発するポートレットアプリケーションで利用するライブラリ(JARファイル)を格納するフォルダです。 |
| tld | WebOTX Portal サーバで利用するポートレット用のtldファイルを格納するフォルダです。 |
| nec-web.xml | WebOTXアプリケーションサーバー用のデプロイメント記述子ファイルです |
| portlet.xml | ポートレットとポートレット関連の構成情報をすべて定義した ポートレットデプロイメント記述子ファイルです。 |
| web.xml | Webアプリケーションのデプロイメント記述子ファイルです。 |
Memo
XMLファイル、JSPファイルの作成時のエンコードの設定方法については、環境設定のエンコード設定 を参照してください。

| 画面要素 | 説明 |
|---|---|
| ビュー | プロジェクトの構成がツリー構造で表示されます。 |
| ビューツールバー | 便利なツール(リンク、縮小など)を提供します。 |
| ビュータブ | 最大化・クローズなどができます。 |


<?xml version="1.0" encoding="UTF-8"?> <portlet-app version="x.x" …> … </portlet-app>


| 要素 | 子要素 | 表示名 | アイコン |
|---|---|---|---|
| <portlet> | 「ポートレットデプロイメント記述子:」文字列の後ろにプロジェクト名を表示します。 |
|
|
| <portlet-name> | <portlet-name>要素の値を表示します。 |
|


<event-definition xmlns:接頭辞="名前空間"> <qname>接頭辞:イベント名</qname> <value-type>イベントペイロードの型</value-type> </event-definition>
<event-definition> <name>イベント名</name> <value-type>イベントペイロードの型</value-type> </event-definition>
<supported-publishing-event xmlns:接頭辞="名前空間">
<qname>接頭辞:イベント名</qname>
</supported-publishing-event>
<supported-publishing-event>
<name>イベント名</name>
</supported-publishing-event>
<supported-processing-event xmlns:接頭辞="名前空間">
<qname>接頭辞:イベント名</qname>
</supported-processing-event>
<supported-processing-event>
<name>イベント名</name>
</supported-processing-event>
| 要素 | 子要素 | 子要素 | 表示名 | アイコン |
|---|---|---|---|---|
| <portlet-app> | 「ポートレットデプロイメント記述子:」文字列の後ろにプロジェクト名を表示します。 |
|
||
| <event-definition> | 「イベント」を表示します。 |
|
||
| <q-name> | q-name要素の値を表示します。 |
|
||
| <filter> | 「フィルター」を表示します。 |
|
||
| <filter-name> | filter-name要素の値をを表示します。 |
|
||
| <public-render-parameter> | 「パブリックレンダーパラメータ」を表示します。 |
|
||
| <identifier> | identifier要素の値を表示します。 |
|
||
| <portlet> | 「ポートレット」を表示します。 |
|
||
| <supported-publishing-event> | supported-publishing-event のq-name要素の値を表示します。 |
|
||
| <supported-processing-event> | supported-processing-event のq-name要素の値を表示します。 |
|
||
| <supported-public-render-parameter> | supported-public-render-parameter要素の値を表示します。 |
|


Memo
ポートレットプロジェクトの右クリックメニューから ポータル
> ポートレット参照 を選択した場合と同じ挙動をします。「ポートレット参照の利用」を参照してください。





Caution
ポートレット名に下記の文字は使えません。
• 空白
• 特殊文字(` ~ ! @ # % ^ & * ( ) - +
= { [ } ] | \ : ; " ' < , > . ? /等)
• Latin-1
(ISO 8859-1)以外の文字(日本語等)
• 1文字目が数字
| ポートレット型 | 説明 |
|---|---|
| シンプルポートレット | Java Portlet APIに準拠したシンプルなJavaポートレットです。 |
| JSP/HTMLポートレット |
portlet.xmlの初期パラメータにView用/Edit用/Help用それぞれのJSPファイルまたはHTMLファイルを指定し、指定されたJSP/HTMLファイルをそのまま実行する汎用ポートレットです。 JSPファイルの編集によって、さまざまな機能を提供可能であり、JSPを使用したポートレットを新規開発する際のベースとなります。 |
| コンテンツ表示ポートレット | WebOTX Portal に同梱されているコンテンツ表示ポートレット(Iframe形式)を元にした
カスタムのコンテンツ表示ポートレットです。 |





Memo
スーパークラスは javax.portlet.GenericPortlet
を継承したクラスを指定してください。


| 項目 | 説明 |
|---|---|
| コンテンツ・タイプ | 変更不可項目です。 ポートレットがサポートするコンテンツタイプの種別です。 値:text/html |
| 表示 | 変更不可項目です。 表示(View)モードをサポートするか指定します。 表示(View)モードはポートレットではサポート必須のため、常にONになります。 値:ON |
| 個人設定 | 変更可能項目です。 編集(Edit)モードをサポートするか指定します。 デフォルト値:OFF |
| ヘルプ | 変更可能項目です。 ヘルプ(Help)モードをサポートするか指定します。 デフォルト値:OFF |
| 説明 | 変更可能項目です。 説明(About)モードをサポートするか指定します。 デフォルト値:OFF |
| 共用設定 | 変更可能項目です。 共用設定(Edit_Defaults)モードをサポートするか指定します。 デフォルト値:OFF |
| 項目 | 説明 |
|---|---|
| ロケール | ポートレットでサポートする言語情報です。デフォルトはdefaultのみがONになります。default
は変更はできません。 以下の言語をサポートします。
|
| ロケール情報 | 言語情報です。ロケール名を表示します。 |
| タイトル | 各言語でのタイトルです。デフォルトは指定したポートレット名になっています。 |


| 項目 | 説明 |
|---|---|
| ロケール | ロケールを指定します。次のロケールを指定することが可能です。
|
| タイトル | ロケールのタイトルが指定できます。 |
| ショートタイトル | ロケールのショートタイトルが指定できます。 |
| キーワード | ロケールのキーワードが指定できます。 |
Memo
追加されたロケールはロケール設定情報テーブルで表示され、有効になります。また、タイトル、ショートタイトル、キーワードは設定しても、WebOTX
Portal V9では表示されません。


| 項目 | 説明 |
|---|---|
| ロケール | 選択したロケールを表示します。編集不可。 |
| タイトル | ロケールのタイトルが編集できます。 |
| ショートタイトル | ロケールのショートタイトルが編集できます。 |
| キーワード | ロケールのキーワードが編集できます。 |


Memo
ポートレット型 でシンプルポートレットを指定した場合、オプションページへ遷移すること
ができません。
JSP/HTMLポートレットとコンテンツ表示ポートレットを指定した場合、 オプションページへ遷移することができます。
| 規格 | ポートレット型 | 表示切り替え | D&D 機能 | Ajax 機能 | SWF 呼び出し |
|---|---|---|---|---|---|
| V1.0(JSR168) | シンプル | × | × | × | × |
| JSP/HTML | ○ | × | × | ○ | |
| コンテンツ表示 | ○ | × | × | × | |
| V2.0(JSR286) | シンプル | × | × | × | × |
| JSP/HTML | ○ | ○ | ○ | ○ | |
| コンテンツ表示 | ○ | × | × | × |
| 項目 | 説明 |
|---|---|
| Drag機能を追加 | Dragソースの設定が生成するポートレットの雛形に追加されます。 |
| Drop機能を追加 | Dropターゲットの設定が生成するポートレットの雛形に追加されます。 |
| 項目 | 説明 |
|---|---|
| クライアント側のみで連携 | クライアント側(ブラウザ)上のみで連携する方式です。 ブラウザに表示されている文字列をテキストボックスにドロップする場合等に利用できます。 |
| クライアント側とサーバ側で連携 | クライアント側とサーバ側で連携する方式です。 クライアント側で受け渡すデータを元にサーバ側で処理を行う場合に利用します。 |


Memo
ポートレット型 でコンテンツ表示ポートレットを指定した場合に遷移することができます。
| 項目 | 説明 |
|---|---|
| IFrameポートレット形式 | IFrame形式のベースクラスを元にしたシステムコンテンツ表示ポートレットです。 |
Caution
ポートレット型 でコンテンツ表示ポートレットを指定した場合、
ポートレットウィザード生成後に実行環境からJARファイルをプロジェクトにコピーする必要があります。
詳細は 他システム連携ポートレットの作成 を参照して下さい。
<portlet-app>
<portlet>
<portlet-name>TestPortlet</portlet-name>
<portlet-class>com.nec.webotx.TestPortlet</portlet-class>
<init-param>
<name>TestName</name>
<value>TestValue</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
<portlet-info>
<title>TestPortlet</title>
</portlet-info>
</portlet>
</portlet-app>
| 種別 | モード名 | 説明 | 実装方法 |
|---|---|---|---|
| 標準ポートレットモード | 表示(View) | ポートレットが必ずサポートしなければならないモードです。通常の表示状態を表します。 | GenericPortletクラスのdoView()メソッドをオーバーライドします。 |
| 個人設定(Edit) | 任意のポートレットモードです。ポータルサーバにログインしてる各個人ごとの設定を行う場合に利用するモードです。 | GenericPortletクラスのdoEdit()メソッドをオーバーライドします。 | |
| ヘルプ(Help) | 任意のポートレットモードです。ポートレットの操作方等、ポートレットに関するヘルプ情報を提供する場合に利用します。 | GenericPortletクラスのdoHelp()メソッドをオーバーライドします。 | |
| カスタムポートレットモード | 説明(About) | 任意のポートレットモードです。ポートレットの作成者や概要説明等のポートレットに関する情報を提供する場合に利用します。 | @RenderMode 等を利用して実装します。 |
| 共用設定(Edit_Defaults) | 任意のポートレットモードです。各作成ポートレットで共通の設定を行う場合に利用します。 | @RenderMode 等を利用して実装します。 |
public class HelloPortlet extends javax.portlet.GenericPortlet {
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
//表示モードを実装する
}
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException {
//個人設定モードを実装する
}
public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException {
//ヘルプモードを実装する
}
@RenderMode(name = "about")
public void doAbout(RenderRequest request, RenderResponse response) throws PortletException, IOException {
//説明モードを実装する
}
@RenderMode(name = "edit_defaults")
public void doEditDefaults(RenderRequest request, RenderResponse response) throws PortletException, IOException {
//共用設定モードを実装する
}
}
Caution
ポートレットプリファレンスではトランザクション機能等は備えていないため機密性や信頼性の高い情報の保存には適していませんので、
それらのデータの保存には利用することは避けて下さい。
public void processAction(ActionRequest request, ActionResponse response) throws IOException {
// プリファレンスオブジェクトの取得
PortletPreferences prefs = request.getPreferences();
//プリファレンスの取得
String data = prefs.getValue("KEYNAME", "");
// プリファレンスの設定
prefs.setValue("PEF_KEY", "value");
// プリファレンスの永続化
prefs.store();
}
<portlet>
<portlet-name>RefreshPortlet</portlet-name>
<portlet-class>com.nec.portlet.RefreshPortlet</portlet-class>
<portlet-preferences>
<preference>
<name>KEYNAME</name>
<value>value</value>
<read-only>false</read-only>
</preference>
</portlet-preferences>
</portlet>
| メソッド | 説明 |
|---|---|
| String getValue(String name, String default) | プリファレンスの最初の値を取得するために使用します。 |
| String[] getValues(String name, String[] defaults) | プリファレンスのすべての値を取得するために使用します。 |
| boolean isReadOnly(String name) | 特定のプリファレンスが読み込み専用かどうかを判別するために使用します。 |
| Enumeration getNames() | すべてのプリファレンス名の列挙値を取得するために使用します。 |
| Map getMap() | プリファレンスのマップを取得するために使用します。 |
| void setValue(String name, String value) | プリファレンスの値を設定するために使用します。 |
| void setValues(String name, String[] values) | プリファレンスに複数の値を設定するために使用します。 |
| void store() | ポートレットのプリファレンスに加えた変更をコミットするために使用します。 |
| void reset(String name) | プリファレンスの値をデフォルトに戻すか、デフォルトがない場合はプリファレンスを削除するために使用します。 |
| タグ名 | 概要 | ||||||
|---|---|---|---|---|---|---|---|
| <portlet:defineObjects/> | 定義することで JSP ファイル中から以下の変数が利用可能になります。
|
||||||
| <portlet:actionURL/> | 現行のポートレットを指定し、提供されたパラメータでアクションリクエストを起動するのに必要なURLを作成します。 form
タグの action 属性に指定することで、対象のポートレットの processAction と対応のポートレットモードの描画処理が
呼び出されます。属性も指定することが出来、以下に主な属性について示します。
<portlet:actionURL windowState="maximized" portletMode="edit" name="action1">
<portlet:param name="action" value=2editStocks"/>
</portlet:actionURL>
上記では、ポートレットをEDITモードおよびMAXIMIZEDウィンドウ状態にするURLを作成します。 |
||||||
| <portlet:renderURL/> | ポートレットrenderURLタグは、現行のポートレットを指定し、提供されたパラメータでレンダーリクエストを起動するのに必要なURLを作成します。
form タグの action 属性に指定することで、対象のポートレットの対応のポートレットモードの描画処理が呼び出されます。
属性も指定することが可能です。主な属性については actionURL タグを参照して下さい。 例: <form action="<portlet:renderURL portletMode="view"/>" method="POST"> <input name="view" type="submit" value="back to view mode"></form>上記では、表示モードに変更するリンクボタンを提供します。 |
||||||
| <portlet:resourceURL/> | ポートレットresourceURLタグは、現行のポートレットを指定し、提供されたパラメータでserveResourceリクエストを起動するのに必要なURLを作成します。
form タグのaction属性に指定することで、対象ポートレットの serveResource関数が呼び出されます。
属性も指定することが出来、以下に主な属性について示します。
<form action="<portlet:resourceURL id="res1"/>" method="POST"> |
||||||
| <portlet:namespace/> | 現行のポートレットに対して一意の値を生成します。このタグは、
(JavaScript関数および変数のような)ポートレットアウトプットの名前付きエレメントのために使用します。 例: <A HREF="javascript:<portlet:namespace/>doFoo()" >Foo</A>例では、JavaScript関数‘doFoo’に接頭辞として付け、それによりポータルページでの一意性を確実にします。 |
||||||
| <portlet:param/> | actionURLまたは renderURLに追加できるパラメータを定義します。 例: <portlet:param name="myParam" value="someValue"/> |
Memo
<portlet:namespace/>
タグを利用してHTML上の要素を一意に特定する場合は、ウィンドウ状態を識別する識別子と組み合わせて使用してください。詳細については、プログラミング上の注意事項を参照してください。
| アノテーション名 | 説明 |
|---|---|
| @ProcessAction(name=<action name>) | メソッドに指定できるアノテーションです。name属性で指定された actionURL を処理する関数に指定します。 |
| @ProcessEvent(qname=<event name>) | メソッドに指定できるアノテーションです。qname属性で指定されたイベントを処理する関数に指定します。 |
| @RenderMode(name=<portletmode name>) | メソッドに指定できるアノテーションです。name属性で指定されたポートレットモードを描画する関数に指定します。 |
| ポートレットウィンドウ状態 | 説明 |
|---|---|
| 標準 | 通常の表示状態です。ポータルページのレイアウトに従ってポートレットコンテンツが表示されます。 |
| 最大化 | 1ポータルページ中にポートレットを1つのみ表示する状態です。他のポートレットは表示されません。 |
| 最小化 | ポートレットウィンドウのタイトルのみを表示し、ポートレットのコンテンツは表示されません。 |
<form action="<portlet:actionURL portletMode="view" />" method="post">...</form>カレントウィンドウ状態から標準ウィンドウ状態へ遷移したい場合、windowStateをnormalに指定します。
<form action="<portlet:actionURL windowState="normal" />" method="post">...</form>
String yourName = request.getParameter("key");
サーバ側でJSPへ渡す:
response.setRenderParameter("key", value);
<%=renderRequest.getParameter("key")%>
<%=renderRequest.getContextPath()%>
com.nec.webotx.portal.container.portlet.PortletListener
Memo
PortletListenerを実装するクラスは、portlet.xml の portlet-class要素
で定義されるクラスである必要があります。 また、portlet.xml の listener 要素に設定する必要はありません。
| メソッド | 概要 |
|---|---|
| addPortlet(long portletId) | 作成ポートレット作成時に呼び出されます。本バージョンでは未サポートです。 |
| removePortlet(long portletId) | 作成ポートレットの削除時に呼び出されます。ただし、作成ポートレットの削除に失敗した場合は呼び出されません。 引数に、削除した作成ポートレットIDが渡されます。 |
| copyPortlet(long dist,long target) | 作成ポートレットのコピー時に呼び出されます。 引数にコピー元の作成ポートレットID、コピー先の作成ポートレットIDが渡されます。 |
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Locale;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import com.nec.webotx.portal.container.portlet.PortletListenerException;
public class PortletListener extends GenericPortlet implements com.nec.webotx.portal.container.portlet.PortletListener {
/**
* 以下のテーブルのレコードをコピーする。
* idには作成ポートレットIDが入る。
*
* テーブル名 : data
* id (bigint, NULL以外)
* data (nvarchar(255), NULL)
*/
public void copyPortlet(long arg0, long arg1) throws PortletListenerException {
Connection con = null;
PreparedStatement pstmt = null;
PreparedStatement copypstmt = null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=portlet", "user", "password");
String sql = "select * from data where id = ?";
pstmt = con.prepareStatement(sql);
pstmt.setLong(1, srcPortletId);
ResultSet rset = pstmt.executeQuery();
String data = null;
while (rset.next())
{
data = rset.getString(2);
}
// コピー処理
String copySql = "insert into data values(?,?)";
copypstmt = con.prepareStatement(copySql);
copypstmt.setLong(1, destPortletId);
copypstmt.setString(2, data);
copypstmt.execute();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if (copypstmt != null)
{
copypstmt.close();
}
if (pstmt != null)
{
pstmt.close();
}
if (con != null)
{
con.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
/**
* 以下のテーブルのレコードを削除する。
* idには作成ポートレットIDが入る。
*
* テーブル名 : data
* id (bigint, NULL以外)
* data (nvarchar(255), NULL)
*/
public void removePortlet(long arg0) {
Connection con = null;
PreparedStatement pstmt = null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=portlet", "user", "password");
String sql = "delete from data where id = ?";
pstmt = con.prepareStatement(sql);
pstmt.setLong(1, portletId);
// 削除処理
pstmt.executeUpdate();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if (pstmt != null)
{
pstmt.close();
}
if (con != null)
{
con.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
| 項目 | 概要 |
|---|---|
| ポートレット種別 | 作成ポートレットか引用ポートレットかの情報 |
| 作成/引用ポートレットID | 作成ポートレットまたは引用ポートレットに割り当てられているID |
| 作成日 | 作成/引用ポートレットが作成されてた日時 |
| 更新日 | 作成/引用ポートレットが更新されてた日時 |
| 作成者 | 作成/引用ポートレットを作成したユーザ |
| 説明 | 作成/引用ポートレットに付与されているポートレットの説明 |
| 表示名 | 作成/引用ポートレットのポートレットウィンドウでの表示名 |
| 引用元の作成ポートレットID | 引用ポートレットの場合の引用元のポートレットID |
| 引用元の作成ポートレット表示名 | 引用ポートレットの場合の引用元の表示名 |
| 基本ポートレットID | 作成/引用ポートレットの元となる基本ポートレットのポートレットID |
| パラメータ名 | 概要 |
|---|---|
| com.nec.webotx.portal.container.portlet. PortletRequestAttributesConsts.PORTLET_DEFINITION_ID | 基本ポートレットIDが設定されているパラメータ名。基本ポートレットIDの型は long 型 |
| com.nec.webotx.portal.container.portlet. PortletRequestAttributesConsts.ABOUT | 作成日や作成者等、基本ポートレットID以外の情報を管理するオブジェクトが設定されているパラメータ名。 オブジェクトの型は com.nec.webotx.portal.container.portlet.AboutProperty |
public void doView(RenderRequest request, RenderResponse response) {
// リクエストから AboutProperty オブジェクト取得
AboutProperty aboutProperty = (AboutProperty) request.getAttribute(PortletRequestAttributesConsts.ABOUT);
// リクエストから 基本ポートレットIDを取得
long id = (long) request.getAttribute(PortletRequestAttributesConsts.PORTLET_DEFINITION_ID);
AboutProperty オブジェクトからは各関数を利用して情報を取得します。対応する関数は以下のようになっています。
| 項目 | 関数名 | 返却値 |
|---|---|---|
| ポートレット種別 | getPortletType() | 作成ポートレットの場合: com.nec.webotx.portal.container.
portlet.AboutProperty.CONFIGURED_PORTLET 引用ポートレットの場合: com.nec.webotx.portal.container. portlet.AboutProperty.REFERENCE_PORTLET |
| 作成/引用ポートレットID | getId() | long |
| 作成日 | getCreateDate() | java.util.Date |
| 更新日 | getUpdateDate() | java.util.Date |
| 作成者 | getCreater() | java.lang.String |
| 説明 | getDescription() | java.lang.String |
| 表示名 | getName(java.util.Locale locale) | java.lang.String |
| 引用元の作成ポートレットID | getSourceConfiguredPortletId() | long |
| 引用元の作成ポートレット表示名 | getSourceConfiguredPortletName(java.util.Locale locale) | java.lang.String |
PortletSession session = request.getSession(true);
URL url = new URL("http://www.nec.com");
session.setAttribute("home.url", url, PortletSession.APPLICATION_SCOPE);
session.setAttribute("bkg.color", "RED", PortletSession.PORTLET_SCOPE);



| 画面要素 | 画面種類 | 説明 |
|---|---|---|
| ポートレット間連携定義エディタの本体 | エディタ | イベント、パブリックレンダーパラメータの定義やポートレット間の連携などができます。 |
| プロジェクト・エクスプローラ | ビュー | ポートレットプロジェクトの構成の表示やポートレット間連携定義エディタの起動などができます。 |
| プロパティー・ビュー | ビュー | 指定されているコンポーネントのプロパティーを表示します。 |
| ツール・バー | ボタン・ドロップダウンリスト | ポートレット間連携定義エディタのカンバスの拡大・縮小ができます。 |
| メニュー・バー | ドロップダウンリスト | ポートレット間連携定義エディタの起動や起動パターンの設定ができます。 |
| ステータス・バー | ラベル | ビューの情報などが表示されます。 |
図2.8.2.1-1
| アイコン | 項目 | 説明 |
|---|---|---|
|
|
自動レイアウト | ポートレットが自動的にレイアウトされます。 |
|
|
拡大 | 5%、10%、15%、25%、50%、75%、100%の順で、拡大していきます。 ※ 最大の100%になると、使用不可になります。 |
|
|
縮小 | 100%、75%、50%、25%、15%、10%、5%の順で、縮小していきます。 ※ 最小の5%になると、使用不可になります。 |
|
|
倍率 | 5%から100%までの拡大・縮小表示が可能です。 ズームの倍率の初期状態は100%です。 倍率リストに5%、10%、15%、25%、50%、75%、100%の表示が可能です。 上記倍率以外に「Page」、「Height」、「Width」を指定して表示するズームを変更することができます。 ※ 「Page」を指定したら、カンバスページのサイズに合わせて拡大・縮小します。 ※ 「Width」を指定したら、カンバスページの幅に合わせて拡大・縮小します。 ※ 「Height」を指定したら、カンバスページの高さに合わせて拡大・縮小します。 直接に倍率を入力して指定できます。この場合は、以下のルールに従います。 ※ 最大の100%以上になると、自動的に「100%」にします。 ※ 最小の5%以下になると、自動的に「5%」にします。 ※ 5?100の範囲内で小数値を入力すると、小数点以下第一位が四捨五入された値になります。 |
Memo
ポートレット間連携定義エディタで、 元に戻す と
やり直し との機能は提供しません。



| メニュー名 | アイコン | 出る箇所 | 実行結果 |
|---|---|---|---|
| 表示のクリア |
|
カンバスの空白 | すべての画面要素を消します。 |



| ノード名 | メッセージ |
|---|---|
| JSR168に準拠するポートレット | JSR168に準拠するポートレットなので、ドラッグ&ドロップできません。 |
| JSR286に準拠するポートレット | JSR286に準拠するポートレットなので、ドラッグ&ドロップできます。 |

Memo
WebOTX開発環境で、ポートレット間連携定義エディタは同時に一つのみ開くことができます。





| 項目 | 説明 | ||||||
|---|---|---|---|---|---|---|---|
| ポートレットのアイコン | ポートレットの種類を表示します。 | ||||||
| ポートレット名 | ポートレット名を表示します。 | ||||||
| イベント/パブリックレンダーパラメータの追加ボタン | ポートレットに新しいイベント/パブリックレンダーパラメータを追加します。 ※参照のポートレットにこのボタンは表示されません。 |
||||||
| ポートレットの背景 | ポートレットの「参照/非参照」の区分を表示します。
|


図2.8.4.1-6


| 項目 | 説明 |
|---|---|
| 名前 | ポートレット名を表示します。 |
| バージョン | ポートレットに準拠する仕様のバージョンを表示します。 |
| パス | ポートレットに含まれているportlet.xmlのパスを表示します |
| フィルター数 | マッピングされたフィルター要素の総数を表示します。 |
| イベント数 | イベント要素の総数を表示します。 |
| パブリックレンダーパラメータ数 | パブリックレンダーパラメータ要素の総数を表示します。 |
Memo
ポートレットの関連情報は編集できません。


Memo
ポートレットを移動した場合、ポートレットに所属するイベント/パブリックレンダーパラメータも一緒に移動します。
Memo
「portlet.xml」ファイルの更新
D&Dでポートレットをポートレット間連携定義エディタへ追加する時に「portlet.xml」ファイルは更新されません。
Memo
プロジェクト・エクスプローラ・ビューの更新
D&Dでポートレットをポートレット間連携定義エディタへ追加する時にプロジェクト・エクスプローラ・ビューも更新されません。
」(イベントの追加ボタンと呼びます)をクリックすると、イベント/パブリックレンダーパラメータの追加メニューが表示されます。
イベント を選択すると、新しいイベントが選択されているポートレットに追加されます。




| 属性 | 新規作成のイベント | ||||||
|---|---|---|---|---|---|---|---|
| イベント名 | 既存のイベントの「イベント名」の値と同じです。 | ||||||
| 種別 | 既存のイベントの「種別」と反対の種別になります。
|
||||||
| 名前空間を使用する | 既存のイベントの「名前空間を使用する」の値と同じです。 | ||||||
| 名前空間 | 既存のイベントの「名前空間」の値と同じです。 | ||||||
| 接頭辞 | 既存のイベントの「接頭辞」の値と同じです。 | ||||||
| ペイロード型 | 既存のイベントの「ペイロード型」の値と同じです。 |



| 項目 | 説明 | ||||||
|---|---|---|---|---|---|---|---|
| イベントのアイコン | イベントの種別を表示します。
|
||||||
| イベント名 | イベント名を表示します。 | ||||||
| イベントの削除ボタン | 当該イベントを削除します。 |






| 項目 | 説明 |
|---|---|
| イベント名 | イベント名を表示します。 |
| 種別 | イベントの種別を指定します。 |
| 名前空間を使用する | 名前空間を使用するかどうかを指定します。 |
| 名前空間 | 名前空間を指定します。 |
| 接頭辞 | 接頭辞を指定します。 |
| ペイロード型 | ペイロード型を指定します。 コンボボックス(イベントペイロード型)のアイテム内容はJAXB2.0仕様書の8.5.1章と8.5.2章(java.lang.Objectを除く)のJavaプリミティブ型/標準クラスの一覧に載っている型です。 |
| Java Primitive Type | XML data type |
|---|---|
| boolean | xs:boolean |
| byte | xs:byte |
| short | xs:short |
| int | xs:int |
| long | xs:long |
| float | xs:float |
| double | xs:double |
| Java Class | XML data type |
|---|---|
| java.lang.String | xs:string |
| java.math.BigInteger | xs:integer |
| java.math.BigDecimal | xs:decimal |
| java.util.Calendar | xs:dateTime |
| java.util.Date | xs:dateTime |
| javax.xml.namespace.QName | xs:QName |
| java.net.URI | xs:string |
| javax.xml.datatype.XMLGregorianCalendar | xs:anySimpleType |
| javax.xml.datatype.Duration | xs:duration |
| java.lang.Object | xs:anyType |
| java.awt.Image | xs:base64Binary |
| javax.activation.DataHandler | xs:base64Binary |
| javax.xml.transform.Source | xs:base64Binary |
| java.util.UUID | xs:string |
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-publishing-event xmlns:接頭辞='名前空間'> <qname>接頭辞:イベント名</qname> </supported-publishing-event> </portlet> …… <event-definition xmlns:接頭辞='名前空間'> <qname>接頭辞:イベント名</qname> <value-type>イベントペイロードの型</value-type> </event-definition> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-publishing-event> <name>イベント名</name> </supported-publishing-event> </portlet> …… <event-definition> <name>イベント名</name> <value-type>イベントペイロードの型</value-type> </event-definition> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-publishing-event xmlns:prefix='http://com.nec.webotx'> <qname>prefix:eventName</qname> </supported-publishing-event> </portlet> …… <event-definition xmlns:prefix='http://com.nec.webotx'> <qname>prefix:eventName</qname> <value-type>java.lang.String</value-type> </event-definition> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-publishing-event> <name>eventName</name> </supported-publishing-event> </portlet> …… <event-definition> <name>eventName</name> <value-type>java.lang.String</value-type> </event-definition> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-processing-event xmlns:接頭辞='名前空間'> <qname>接頭辞:イベント名</qname> </supported-processing-event> </portlet> …… <event-definition xmlns:接頭辞='名前空間'> <qname>接頭辞:イベント名</qname> <value-type>イベントペイロードの型</value-type> </event-definition> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-processing-event> <name>イベント名</name> </supported-processing-event> </portlet> …… <event-definition> <name>イベント名</name> <value-type>イベントペイロードの型</value-type> </event-definition> …… </portlet-app>





| 属性 | 入力内容 | 結果 |
|---|---|---|
| イベント名 | 「英数字」、「_」、「-」、「.」 | 正常に表示します。 |
| 空 | 「イベント名」が赤字になります。 エラーメッセージ:「イベント名を入力してください。」 |
|
| 既に存在しているイベントの名前(※1) | 「イベント名」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
|
| 無効文字 「英数字」、「_」、「-」、「.」以外の文字。 |
「イベント名」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。イベント名には( 英数字_-. ) のみ利用できます。」 |
|
| 命名ルール違反(数字、「.」、「-」で始まる)の入力 | 「イベント名」が赤字になります。 エラーメッセージ:「イベント名は( 数字.- )で始めることはできません。」 |
|
| 命名ルール違反「.」で開始または終了 | 「イベント名」が赤字になります。 エラーメッセージ:「イベント名をドットで開始または終了することはできません。」 |
|
| 種別 | 既に存在しているイベントの名前(※1) | 「種別」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
| 上記以外の場合 | 正常に表示します。 | |
| 名前空間を使用する | 既に存在しているイベントの名前(※1) | 「名前空間を使用する」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
| 上記以外の場合 | 正常に表示します。 | |
| 名前空間 | 有効文字 英数字+"~`!@#$%^*()_-+=|\{}[]:;"?/,. " |
正常に表示します。 |
| 空 | 「名前空間」が赤字になります。 エラーメッセージ:「名前空間を入力してください。」 |
|
| 既に存在しているイベントの名前(※1) | 「名前空間」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
|
| 無効文字。 英数字+"~`!@#$%^*()_-+=|\{}[]:;"?/,. "以外の文字。 |
「名前空間」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。名前空間には( 英数字~`!@#$%^*()_-+=|\{}[]:;"?/,.空白)のみを指定できます。」 |
|
| 接頭辞 | 「英数字」、「_」、「-」、「.」 | 正常に表示します。 |
| 空 | 「接頭辞」が赤字になります。 エラーメッセージ:「接頭辞を入力してください。」 |
|
| 既に存在しているイベントの名前(※1) | 「接頭辞」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
|
| 無効文字 「英数字」、「_」、「-」、「.」以外の文字。 |
「接頭辞」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。接頭辞には( 英数字_-. )のみを指定できます。」 |
|
| 命名ルール違反(数字、「.」、「-」で始まる)を入力 | 「接頭辞」が赤字になります。 エラーメッセージ:「接頭辞は( 数字.- )で始めることはできません。」 |
|
| ペイロードの型 | 既に存在しているイベントの名前(※1) | 「接頭辞」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}イベント名)。」 |
| 上記の以外の場合 | 正常に表示します。 |







| 項目 | 説明 |
|---|---|
| 既存メソッドに追加 | 既存メソッドに処理ソースを追加します。 このボタンを選択すると、「メソッド名」入力欄は利用できます。 |
| メソッド名 | ポートレットクラスのJavaファイルに対する既存のメソッドを表示します。 |
| 新規メソッドを生成 | 新規のメソッドを追加します。 このボタンを選択すると、「メソッド名」入力欄は利用できます。 |
| メソッド名 | Javaの命名ルールに従って、新規のメソッド名を指定します。 |
| 「はい」ボタン | 既存のメソッドが指定された場合、あるいは新規のメソッド名が正しく入力された場合、このボタンは利用できます。 「新規メソッドを生成」を選択した状態で、既に存在しているメソッド名を入力した場合、「はい」ボタンは利用できません。 「新規メソッドを生成」を選択した状態で、無効のメソッド名を指定した場合、エラーダイアログが表示されます。 エラーメッセージについては「エラーコード及びメッセージ一覧」を参照してください。 |
| 「いいえ」ボタン | 処理の生成を中止します。 |
Memo
Javaの命名ルール:
1. 大文字と小文字を区別します。
2. 1文字目は英字、$, _ の何れかとします。
3. キーワードと重複しないようにします。
4. false, true
(boolean literal) は不可です。
5. null (null literal)
は不可です。
6. 記号は、演算子/特殊文字は不可です。
7. 文字数は任意です。
8. 言語は任意です。
キーワードには次の 49
個が定義されています。
| abstract | default | if | private | this | boolean | do |
| implements | protected | throw | break | double | import | public |
| throws | byte | else | instanceof | return | transient | case |
| extends | int | short | try | catch | final | interface |
| static | void | char | finally | long | strictfp | volatile |
| class | float | native | super | while | const | for |
| new | switch | continue | goto | package | synchronized | assert |

| 項目 | 説明 |
|---|---|
| メソッド名の入力 | Javaの命名ルールに従って、新規のメソッド名を指定します。 |
| 「はい」ボタン | メソッド名が正しく入力された場合、このボタンは利用できます。 既に存在しているメソッド名を入力した場合、エラーダイアログが表示されます。 指定のメソッド名が無効である場合、エラーダイアログが表示されます。 エラーメッセージについては「エラーコード及びメッセージ一覧」を参照してください。 |
| 「いいえ」ボタン | 処理の生成を中止します。 |
……
public void メソッド名(ActionRequest request, ActionResponse response) {
try {
javax.xml.namespace.QName qName = new javax.xml.namespace.QName ("名前空間", "イベント名", "接頭辞");
イベントペイロードの型data = null;
response.setEvent(qName, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void メソッド名(ActionRequest request, ActionResponse response) {
try {
String event = "イベント名";
イベントペイロードの型data = null;
response.setEvent(event, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void testEvent (ActionRequest request, ActionResponse response) {
try {
javax.xml.namespace.QName qName = new javax.xml.namespace.QName ("http://com.nec.webotx ", "eventName", "prefix");
java.lang.String data = null;
response.setEvent(qName, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
public void testEvent (ActionRequest request, ActionResponse response) {
try {
String event = "eventName";
java.lang.String data = null;
response.setEvent(event, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void メソッド名 {
……
try {
javax.xml.namespace.QName qName = new javax.xml.namespace.QName("名前空間", "イベント名", "接頭辞");
イベントペイロードの型data = null;
response.setEvent(qName, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void メソッド名 {
……
try {
String event = "イベント名";
イベントペイロードの型data = null;
response.setEvent(event, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
try {
javax.xml.namespace.QName qName = new QName("http://com.nec.webotx ", "eventName", "prefix");
java.lang.String data = null;
response.setEvent(qName, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
try {
String event = "eventName";
java.lang.String data = null;
response.setEvent(event, data);
} catch (Exception e) {
e.printStackTrace();
}
}
……
……
@ProcessEvent(qname = "{名前空間}イベント名")
public void メソッド名(EventRequest request, EventResponse response) throws PortletException, IOException {
Event event = request.getEvent();
response.setRenderParameter(event.getName(), (イベントペイロードの型) event.getValue());
}
……
……
@ProcessEvent(name = "イベント名")
public void メソッド名(EventRequest request, EventResponse response) throws PortletException, IOException {
Event event = request.getEvent();
response.setRenderParameter(event.getName(), (イベントペイロードの型) event.getValue());
}
……
……
@ProcessEvent(qname = "{http://com.nec.webotx}eventName ")
public void handleProcessEvent(EventRequest request, EventResponse response)
throws PortletException, IOException {
Event event = request.getEvent();
response.setRenderParameter(event.getName(), (java.lang.String) event.getValue());
}
……
……
@ProcessEvent(name = "eventName")
public void handleProcessEvent(EventRequest request, EventResponse response)
throws PortletException, IOException {
Event event = request.getEvent();
response.setRenderParameter(event.getName(), (java.lang.String) event.getValue());
}
……

」(イベントの削除ボタンと呼びます)をクリックすると、
イベントの削除 の確認ダイアログが表示されます。







<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-publishing-event xmlns:接頭辞='名前空間'><qname>接頭辞:イベント名</qname></supported-publishing-event></portlet> ……<event-definition xmlns:接頭辞='名前空間'><qname>接頭辞:イベント名</qname><value-type>イベントペイロードの型</value-type></event-definition>…… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-publishing-event><name>イベント名</name></supported-publishing-event></portlet> ……<event-definition><name>イベント名</name><value-type>イベントペイロードの型</value-type></event-definition>…… </portlet-app>
Memo
「<event-definition>」要素の定義は他のイベントが利用している場合、「<event-definition>」要素の定義は削除しません。
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-publishing-event xmlns:prefix='http://com.nec.webotx'><qname>prefix:eventName</qname></supported-publishing-event></portlet> ……<event-definition xmlns:prefix='http://com.nec.webotx'><qname>prefix:eventName</qname><value-type>java.lang.String</value-type></event-definition>…… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-publishing-event><name>eventName</name></supported-publishing-event></portlet> ……<event-definition><name>eventName</name><value-type>java.lang.String</value-type></event-definition>…… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-processing-event xmlns:接頭辞='名前空間'><qname>接頭辞:イベント名</qname></supported-processing-event></portlet> ……<event-definition xmlns:接頭辞='名前空間'><qname>接頭辞:イベント名</qname><value-type>イベントペイロードの型</value-type></event-definition>…… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> ……<supported-processing-event><name>イベント名</name></supported-processing-event></portlet> ……<event-definition><name>イベント名</name><value-type>イベントペイロードの型</value-type></event-definition>…… </portlet-app>
」(パブリックレンダーパラメータの追加ボタンと呼びます)をクリックすると、パブリックレンダーパラメータの追加メニューが出てくる。
パブリックレンダーパラメータ を選択すると、新しいパブリックレンダーパラメータが選択しているポートレットに追加されます。




| 属性 | 新規作成のパブリックレンダーパラメータ |
|---|---|
| パブリックレンダーパラメータ名 | 既存のパブリックレンダーパラメータの「パブリックレンダーパラメータ名」の値と同じです。 |
| 識別子 | 既存のパブリックレンダーパラメータの「識別子」の値と同じです。 |
| 名前空間を使用する | 既存のパブリックレンダーパラメータの「名前空間を使用する」の値と同じです。 |
| 名前空間 | 既存のパブリックレンダーパラメータの「名前空間」の値と同じです。 |
| 接頭辞 | 既存のパブリックレンダーパラメータの「接頭辞」の値と同じです。 |



| 項目 | 説明 |
|---|---|
| パブリックレンダーパラメータのアイコン | パブリックレンダーパラメータを表すアイコンを表示します。 |
| パブリックレンダーパラメータ名 | パブリックレンダーパラメータ名を表示します。 |
| パブリックレンダーパラメータの削除ボタン | 当該パブリックレンダーパラメータを削除します。 |




| 項目 | 説明 |
|---|---|
| パブリックレンダーパラメータ名 | パブリックレンダーパラメータ名を表示します。 |
| 識別子 | パブリックレンダーパラメータの識別子を指定します。 |
| 名前空間を使用する | 名前空間を使用するかどうかを指定します。 |
| 名前空間 | 名前空間を指定します。 |
| 接頭辞 | 接頭辞を指定します。 |
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-public-render-parameter>識別子</supported-public-render-parameter> </portlet> …… <public-render-parameter xmlns: 接頭辞='名前空間'> <identifier>識別子</identifier> <qname>接頭辞:パブリックレンダーパラメータ名</qname> </public-render-parameter> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-public-render-parameter>識別子</supported-public-render-parameter> </portlet> …… <public-render-parameter> <identifier>識別子</identifier> <name>パブリックレンダーパラメータ名</name> </public-render-parameter> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-public-render-parameter>id</supported-public-render-parameter> </portlet> …… <public-render-parameter xmlns:prefix='http://com.nec.webotx'> <identifier>id</identifier> <qname>prefix:paramName</qname> </public-render-parameter> …… </portlet-app>
<?xml version='1.0' encoding='UTF-8' ?> <portlet-app ……> …… <portlet> …… <supported-public-render-parameter>id</supported-public-render-parameter> </portlet> …… <public-render-parameter> <identifier>id</identifier> <name>paramName</name> </public-render-parameter> …… </portlet-app>




| 属性 | 入力内容 | 結果 |
|---|---|---|
| パブリックレンダーパラメータ名 | 「英数字」、「_」、「-」、「.」 | 正常に表示します。 |
| 空 | 「パブリックレンダーパラメータ名」が赤字になります。 エラーメッセージ:「パブリックレンダーパラメータ名を入力してください。」 |
|
| パブリックレンダーパラメータは既に存在しています※ | 「パブリックレンダーパラメータ名」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}パブリックレンダーパラメータ名)。」 |
|
| 無効文字(「英数字」、「_」、「-」、「.」以外) | 「パブリックレンダーパラメータ名」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。パブリックレンダーパラメータ名には( 英数字_-. ) のみ利用できます。」 |
|
| 命名ルール違反(数字、「.」、「-」で始まる)の入力 | 「パブリックレンダーパラメータ名」が赤字になります。 エラーメッセージ:「パブリックレンダーパラメータ名は( 数字.- )で始めることはできません。」 |
|
| 命名ルール違反「.」で開始または終了 | 「パブリックレンダーパラメータ名」が赤字になります。 エラーメッセージ:「パブリックレンダーパラメータ名をドットで開始または終了することはできません。」 |
|
| 識別子 | 「英数字」、「_」、「-」、「.」 | 正常に表示します。 |
| 空 | 「識別子」が赤字になります。 エラーメッセージ:「識別子を入力してください。」 |
|
| 無効文字 無効効文字(「英数字」、「_」、「-」、「.」以外) |
「識別子」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。識別子には( 英数字_-. ) のみ利用できます。」 |
|
| 命名ルール違反(数字、「.」、「-」で始まる)の入力 | 「識別子」が赤字になります。 エラーメッセージ:「識別子は( 数字.- )で始めることはできません。」 |
|
| 命名ルール違反「.」で開始または終了 | 「識別子」が赤字になります。 エラーメッセージ:「識別子をドットで開始または終了することはできません。」 |
|
| 識別子が既に別のパブリックレンダーパラメータに使われている場合 | 「識別子」が赤字になります。 エラーメッセージ:「識別子が既に別のパブリックレンダーパラメータに使われていますので、その他のを指定してください。」 |
|
| 名前空間を使用する | パブリックレンダーパラメータは既に存在しています※ | 「名前空間を使用する」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}パブリックレンダーパラメータ名)。」 |
| 上記以外の場合 | 正常に表示します。 | |
| 名前空間 | 有効文字(「英数字」、「_」、「-」、「.」) | 正常に表示します。 |
| 空 | 「名前空間」が赤字になります。 エラーメッセージ:「名前空間を入力してください。」 |
|
| パブリックレンダーパラメータは既に存在しています※ | 「名前空間」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}パブリックレンダーパラメータ名)。」 |
|
| 無効文字 無効効文字(「英数字」、「_」、「-」、「.」以外) |
「名前空間」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。名前空間には( 英数字_-.)のみを指定できます。」 |
|
| 接頭辞 | 「英数字」、「_」、「-」、「.」 | 正常に表示します。 |
| 空 | 「接頭辞」が赤字になります。 エラーメッセージ:「接頭辞を入力してください。」 |
|
| パブリックレンダーパラメータは既に存在しています※ | 「接頭辞」が赤字になります。 エラーメッセージ:「この名前を持つQNameは既に存在します(QName = {名前空間}パブリックレンダーパラメータ名)。」 |
|
| 無効文字 無効効文字(「英数字」、「_」、「-」、「.」以外) |
「接頭辞」が赤字になります。 エラーメッセージ:「[{0}]は無効文字です。接頭辞には( 英数字_-. )のみを指定できます。」 |
|
| 命名ルール違反(数字、「.」、「-」で始まる)を入力 | 「接頭辞」が赤字になります。 エラーメッセージ:「接頭辞は( 数字.- )で始めることはできません。」 |


……
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
……
String publicRenderParamValue = request.getParameter("識別子");
response.setRenderParameter("識別子", publicRenderParamValue);
}
……
……
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
……
String publicRenderParamValue = request.getParameter("id");
response.setRenderParameter("id", publicRenderParamValue);
}
……
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
String publicRenderParamValue = request.getParameter("識別子");
response.setRenderParameter("識別子", publicRenderParamValue);
}
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
String publicRenderParamValue = request.getParameter("id");
response.setRenderParameter("id", publicRenderParamValue);
}

」(パブリックレンダーパラメータの削除ボタンと呼びます)をクリックすると、パブリックレンダーパラメータの削除の確認ダイアログが表示されます。




| 項目 | 説明 |
|---|---|
| 実線 | イベント/パブリックレンダーパラメータの連携関係を表示します。 |
| アンカー | 他のイベント/パブリックレンダーパラメータとの接続線を結ぶ起点と終点を表示します。 結線を表示する時に、アンカーは自動的に追加されます。 左側または右側に表示されます。 |
| ベント・ポイント | ドラッグ・ドロップできます。ドラッグ・ドロップをすると、結線が折り曲げられます。 |
| 矢印 | 送受信の方向を表示します。 (イベントの結線のみ) |


| イベント1の種別 | イベント2の種別 | 結線可否 |
|---|---|---|
| 送信 | 受信 | 可 |
| 受信 | 送信 | 可 |
| 送信 | 送信 | 不可 |
| 受信 | 受信 | 不可 |




| 方法 | 概要 |
|---|---|
| ブラウザ経由 | ブラウザ上でのみデータをやり取りする方法です |
| サーバ経由 | ブラウザ上に加え、サーバ側でもデータをやり取りする方法です |
Memo
各タグの詳細は WebOTX ポートレットタグライブラリ
を参照して下さい。
図2.9.3-1
図2.9.3-2
<otxp:drag id="drag1" > <div class="otxpDndItem">Item 1</div> </otxp:drag> 以下にドロップ可能 <otxp:drop id="drop1"> </otxp:drop>

| 箇所 | ドラッグ可否 |
|---|---|
| @ | 可能 |
| @ | 不可 |
| @ | 可能 (Item 3と Item 4をまとめた Drag) |
| @ | 不可 |
| @ | 不可 |
<otxp:drag id="drag1"
model="client"
onDndSourceOver="<portlet:namespace />_onDndSourceOver"
onDndStart="<portlet:namespace />_onDndStart"
onDndCancel="<portlet:namespace />_onDndCancel"
copyOnly="false">
<div class="otxpDndItem">abc</div>
<div>def</div>
</otxp:drag>
<script type="text/javascript">
function <portlet:namespace>_onDndSourceOver(){ … }
function <portlet:namespace>_onDndStart(){ … }
function <portlet:namespace>_onDndCancel() { … }
</script>
<otxp:drop id="drop1"
model="client"
accept="dragId"
onDndDrop="<portlet:namespace />_onDndDrop()"
onDndDropBefore="<portlet:namespace />_onDndDropBefore()">
? ここに Drop 可能 ?
</otxp:drop>
<script type="text/javascript">
function <portlet:namespace>_onDndDrop(){ … }
function <portlet:namespace>_onDndDropBefore(){ … }
</script>
<otxp:drag id="dragzone1">
<div class="otxpDndItem">Item Alpha</div>
<div class="otxpDndItem">Item Beta</div>
<div class="otxpDndItem">Item Gamma</div>
<div class="otxpDndItem">Item Delta</div>
</otxp:drag>
<otxp:drop id="dropzone1" >
<div>Item 1</div>
← テキストボックスの前
<input type="text" class="otxpDndItem" /> ← テキストボックスの中
← テキストボックスの後
<div>Item 2</div>
<div>Item 3</div>
</otxp:drop>

Memo
Firefoxでドロップしてからテキストボックスに入力する場合、フォーカスが移らない場合があります。
その場合、右クリックまたはタブキーでフォーカスを移す必要があります。
<otxp:drag id="dragId">
<div class="otxpDndItem">
<div>Item Y</div>
<div>Item Z</div>
</div>
</otxp:drag>
<otxp:drop id="dropId" accept="dragId">
<input class="otxpDndItem" type="text"/>
</otxp:drop>




<otxp:drag id="AA">
<div class="otxpDndItem">Item X</div>
<div class="otxpDndItem">Item Y</div>
<div class="otxpDndItem">Item Z</div>
</otxp:drag>
<otxp:drop id="drop2" accept="CC">
<div class="otxpDndItem">Item Alpha</div>
<div class="otxpDndItem">Item Beta</div>
<div class="otxpDndItem">Item Gamma</div>
<div class="otxpDndItem">Item Delta</div>
</otxp:drop>

Caution
ブラウザ経由のドラッグ&ドロップを行う場合は、<otxp:drag>、<otxp:drop>
のmodel属性は client に統一して下さい。
<otxp:drag id="drag1"
model="server"
onDndSourceOver="<portlet:namespace />_onDndSourceOver"
onDndStart="<portlet:namespace />_onDndStart"
onDndCancel="<portlet:namespace />_onDndCancel"
copyOnly="false">
<div class="otxpDndItem">abc</div>
<div>def</div>
</otxp:drag>
<script type="text/javascript">
function <portlet:namespace>_onDndSourceOver(){ … }
function <portlet:namespace>_onDndStart(){ … }
function <portlet:namespace>_onDndCancel() { … }
</script>
■サーバへ送信するデータの指定
<div class="otxpDndItem" otxpDndSrc="data">AAA</div>■サーバへ送信するデータの指定
<otxp:drag id="drag1" model="server" load="<portlet:namespace />_load">
<div class="otxpDndItem">abc</div>
</otxp:drag>
<script type="text/javascript">
function <portlet:namespace />_load(response){
// ドラッグ側のサーバからのレスポンスを取得
var responseData = response;
:
// レスポンスデータに対してデータ編集
responseData = responseData + "addData";
:
// 編集したデータを return する
return responseData;
}
</script>
public serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String data = "";
String resourceID = request.getResourceID();
//drag側のサーバ処理
if (resourceID.equals("<otxp:drag>のid属性")) {
String param = request.getParameter("otxpDndParam");
data = param;
}
out.write(data);
out.close();
}
<otxp:drop id="drop1"
model="server"
handleAs="text"
accept="server"
onDndDrop="<portlet:namespace />_onDndDrop()"
onDndDropBefore="<portlet:namespace />_onDndDropBefore()"/>
method="get"
content="a=1&b=1"
load="<portlet:namespace />_load()"
error="<portlet:namespace />_error()"
timeout="30"
handle="<portlet:namespace />_handle()" />
</otxp:drop>
<script type="text/javascript">
function <portlet:namespace />_onDndDrop(){ … }
function <portlet:namespace />_onDndDropBefore(){ … }
function <portlet:namespace />_load(){ … }
function <portlet:namespace />_error(){ … }
function <portlet:namespace />_handle(){ … }
</script>
public serveResource(ResourceRequest request, ResourceResponse response)
throws PortletException, IOException {
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String data = "";
String resourceID = request.getResourceID();
//ドロップ側のサーバ処理
if (resourceID.equals("[ドロップ側のid]")) {
String param = request.getParameter("otxpDndResp");
String a = request.getParameter("a");
String b = request.getParameter("b");
data = "Drop Server!" + a + b + param;
}
out.write(data);
out.close();
}
Caution
サーバ経由のドラッグ&ドロップを行う場合は、<otxp:drag> と <otxp:drop>
のmodel属性は server に統一して下さい。
public class TestPortlet extends GenericPortlet {
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
response.setContentType(request.getResponseContentType());
String viewpage = "";
if (request.getWindowState() == WindowState.MAXIMIZED) {
viewpage = getPortletConfig().getInitParameter("MaxPage");
} else {
viewpage = getPortletConfig().getInitParameter("ViewPage");
}
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(viewpage);
rd.include(request, response);
}
}
portlet.xml には以下のような設定が追加されます。
<portlet-app>
<portlet>
<init-param>
<name>ViewPage</name>
<value>/jsp/html/XXXView.jsp</value>
</init-param>
<init-param>
<name>MaxPage</name>
<value>/jsp/html/XXXViewMax.jsp</value>
</init-param>
生成後、MaxPageのJSPファイルとViewPageのJSPファイルにそれぞれのポートレットウィンドウ状態で表示しようとしている内容を実装します。
<%@ taglib uri="http://www.nec.com/webotx/portlet" prefix="otxp"%> <div>AAA</div> <otxp:winstat viewStandard="maximized"> <div>BBB</div> </otxp:winstat> <div>CCC</div>

<otxp:ajax id="ajax1"
content="a:1"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
timeout="30"/>
<div id="<portlet:namespace />result"> </div>
<script type="text/javascript">
function <portlet:namespace />_load(response, ioArgs){
// サーバ側からのレスポンスデータ
var repdata = response;
// データを画面上の一部に表示
dojo.byId("<portlet:namespace />result").innerHTML = repdata;
}
function <portlet:namespace />_error(){
dojo.byId("<portlet:namespace />result").innerHTML = "エラー発生";
}
</script>
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String data = "";
String resourceID = request.getResourceID();
// リソースIDの判定
if (resourceID.equals("ajax1")) {
data = "Hello Ajax!";
}
out.write(data);
out.close();
}
<otxp:ajax id="ajax1" … /> <input type="button" onclick="<otxp:call funcId="ajax1" />" />

<otxp:ajax id="id_1" load="<porlet:namespace/>_load1()" …/>
<otxp:ajax id="id_2" load="<porlet:namespace/>_load2()" …/>
<otxp:ajax id="id_3" load="<porlet:namespace/>_load3()" …/>
<input type=”text” />
<input type="button" value="編集" onclick="<otxp:call funcId="id_1"/>" />
<input type="button" value="保存" onclick="<otxp:call funcId="id_2"/>" />
<input type="button" value="削除" onclick="<otxp:call funcId="id_3"/>" />
<script type="text/javascript">
function <porlet:namespace/>_load1() { … }
function <porlet:namespace/>_load2() { … }
function <porlet:namespace/>_load3() { … }
</script>
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
String resourceID = request.getResourceID();
if (resourceID.equals("id_1")) {
// 編集処理
}else if (resourceID.equals("id_2")){
// 保存処理
} else if (resourceID.equals("id_3")){
// 削除処理
}
}
<otxp:ajax id="ajax1" load="<portlet:namespace/>_load" handleAs="text"/>
<script type="text/javascript">
function <portlet:namespace/>_load(data,ioargs) {
dojo.byId("result").innerHTML = data;
}
</script>
<div id="result"></div>
<input type="button" value="Click" onclick="<otxp:call funcId="ajax1"/>" />
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String data = "";
String resourceID = request.getResourceID();
if (resourceID.equals("ajax1")) {
data = "Hello Ajax!";
}
out.write(data);
out.close();
}
function <portlet:namespace />_sendRequest(){
// XMLHttpRequestを発行する
dojo.xhrGet({
url: "<%=rc_url%>",
handleAs: "text",
timeout: 10000,
sync: false,
load: function(responseData, ioArgs){
var resStatus = ioArgs.xhr.getResponseHeader("X-WebOTX-Portal-Status");
if(resStatus === "400"){
// セッションタイムアウトが発生した場合の処理
}
else if(resStatus === "500"){
// サーバでエラーが発生した場合の処理。
}
else{
// 通信が正常に終了した場合の処理
}
},
error: function(error, ioArgs){
alert("error!");
}
});
}
<otxp:swf url="http://SWFアプリケーションのURL"/>また、WebOTX Developer ではポートレットウィザードでもオプションの1つとして雛形を生成することができます。 詳細は ポートレットウィザードの利用 を参照して下さい。
| 利用形態 | 概要 |
|---|---|
| ビルトインポートレットを利用 | 既存システムの画面をポータルページ上に表示し使用できればよい場合。 ビルトインで提供されている コンテンツ表示ポートレット、認証連携ポートレット を利用して表示する。 |
| カスタムのコンテンツ表示ポートレットを利用 | 既存システムの画面をポータルページ上に表示したいがビルトインのポートレットでは対応が不十分な場合。
ちょっとした設定を保存したいなど、ビルトインで提供されている コンテンツ表示ポートレット の機能を
ベースとして機能を付加したい場合。 ポートレットウィザードを利用して作成します。 |
| ポートレットとして利用 | 既存システムの画面をポートレット用に分割して表示させたり、ポートレット間連携を行いたい場合等、
ポートレットとして最適化して利用したい場合。 既存の動的Webプロジェクトをポートレットプロジェクトへ変換等して、ポートレットとして再構築して 作成します。 |
| 形式 | 説明 |
|---|---|
| Iframeポートレット形式 | ブラウザがクライアントとなってコンテンツを取得し、取得したコンテンツをインラインフレームに表示する方法です。 |
...
import java.io.*;
import javax.portlet.*;
import com.nec.webotx.portal.contentportlet.api.*;
public class TestPortlet extends GenericPortlet {
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
// Get preference
PortletPreferences prefs = request.getPreferences();
// Get content url
String src = prefs.getValue("URL", "http://host1.co.jp");
// Get height(pixel)
String height = prefs.getValue("HEIGHT", "500");
// Get scroll
String scroll = prefs.getValue("SCROLL", "auto");
// Constructor
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
Locale locale = request.getLocale();
IFrameComponent iFrameComponent;
try {
iFrameComponent = new IFrameComponent(src, writer, locale);
} catch (URISyntaxException e) {
e.printStackTrace();
return;
}
iFrameComponent.setHeight(height);
iFrameComponent.setScrolling(scroll);
// Set other attributes
iFrameComponent.setIFrameAttribute("frameborder", "1");
iFrameComponent.setIFrameAttribute("marginwidth", "10");
// Print iframe tag
iFrameComponent.generateContent();
}
}
ポートレットウィザードで コンテンツ表示ポートレット を選択した場合、
ポートレットウィザード生成後に実行環境からJARファイルをプロジェクトにコピーします。




| 項目 | 説明 |
|---|---|
| 表示名 | プロジェクトエクスプローラのツリーノード表示名です。 |
| ワークスペースから作成 | ワークスペースからportlet.xmlをインポートできます。 |
| ファイルシステムから作成 | ファイルシステムからportlet.xmlをインポートできます。 |





| 要素 | 子要素 | 子要素 | 表示名 | アイコン |
|---|---|---|---|---|
| 参照用portlet.xml | 「ポートレット参照」を表示します。 |
|
||
| ポートレットアプリケーション | ポートレットアプリケーション名を表示します。 |
|
||
| ポートレット要素 | ポートレット要素のportlet-name要素の値を表示します。 |
|
Memo
参照用のアイコンは非参照用のアイコンの明るさを弱めて表示させたものです。

<event-definition xmlns:接頭辞="名前空間">
<qname>接頭辞:イベント名</qname>
<value-type>イベントペイロードの型</value-type>
</event-definition>
<event-definition>
<name>イベント名</name>
<value-type>イベントペイロードの型</value-type>
</event-definition>
<supported-publishing-event xmlns:接頭辞="名前空間">
<qname>接頭辞:イベント名</qname>
</supported-publishing-event>
<supported-publishing-event>
<qname>イベント名</qname>
</supported-publishing-event>
<supported-processing-event xmlns:接頭辞="名前空間">
<qname>接頭辞:イベント名</qname>
</supported-processing-event>
<supported-processing-event> <name>イベント名</name> </supported-processing-event>
| 要素 | 子要素 | 子要素 | 子要素 | 表示名 | アイコン |
|---|---|---|---|---|---|
| 参照用portlet.xml | 「ポートレット参照」を表示します。 |
|
|||
| ポートレットアプリケーション | ポートレットアプリケーション名を表示します。 |
|
|||
| event-definition要素 | 「イベント」を表示します。 |
|
|||
| q-name要素 | q-name要素の値を表示します。 |
|
|||
| filter要素 | 「フィルター」を表示します。 |
|
|||
| filter-name要素 | filter-name要素の値を表示します。 |
|
|||
| public-render-parameter要素 | 「パブリックレンダーパラメータ」を表示します。 |
|
|||
| identifier要素 | identifier要素の値を表示します。 |
|
|||
| portlet要素 | 「ポートレット」を表示します。 |
|
|||
| supported-publishing-event | supported-publishing-event のq-name要素の値を表示します。 |
|
|||
| supported-processing-event | supported-processing-event のq-name要素の値を表示します。 |
|
|||
| supported-public-render-parameter | supported-public-render-parameter要素の値を表示します。 |
|
Memo
参照用のアイコンは非参照用のアイコンの明るさを弱めて表示させたものです。
| メソッド | 説明 |
|---|---|
| void init(FilterConfig filterConfig) | 初期化メソッドです。ポートレットフィルター処理が開始される際にポートレットコンテナによって呼び出されます。 |
| void destroy() | ポートレットフィルター処理の終了の際にポートレットコンテナによって呼び出されるメソッドです。 |
| メソッド | 説明 |
|---|---|
| void doFilter(ActionRequest request, ActionResponse response, FilterChain chain) | ポートレットフィルターが適用されるリクエスト/レスポンスがあるたびに呼び出されるメソッドです。 |
<filter> <filter-name>TestFilter</filter-name> <filter-class>com.nec.portlet.TestPortlet</filter-class> <lifecycle>RENDER_PHASE</lifecycle> <lifecycle>ACTION_PHASE</lifecycle> <lifecycle>EVENT_PHASE</lifecycle> <lifecycle>RESOURCE_PHASE</lifecycle> <init-param> <description>foo</description> <name>time</name> <value>100</value> </init-param> </filter> <filter-mapping> <filter-name>TestFilter</filter-name> <portlet-name>TestPortlet</portlet-name> </filter-mapping>



| 項目 | 説明 |
|---|---|
| プロジェクト名 | ポートレットV2.0プロジェクト |
| ソース・フォルダ | ポートレットプロジェクトのソース・フォルダ |
| パッケージ名 | ポートレットフィルターのパッケージ名 |
| 名前 | ポートレットフィルター名 |
| スーパークラス | ポートレットフィルターの継承するスーパークラス名 |







| 項目 | 説明 |
|---|---|
| 名前 | filter要素とfilter-mapping要素の子要素であるfilter-name要素の値です。必須項目。 |
| 説明 | filter要素の子要素であるdescription要素の値です。 |
| ライフサイクル | filter要素の子要素であるlifecycle要素です。四つの値が指定できます。 RENDER_PHASE ACTION_PHASE EVENT_PHASE RESOURCE_PHASE |
| 初期化パラメータ | filter要素の子要素であるinit-param要素の定義です。name とvalueと descriptionとの子要素があります。 |
| フィルターマッピング | filter-mapping要素の子要素であるfilter-nameとportlet-name要素の値です。 |


| 項目 | 説明 |
|---|---|
| 名前 | init-paramのname要素です。必須項目。 |
| 値 | init-paramのvalue要素です。 |
| 説明 | init-paramのdescription要素です。 |







| 項目 | 説明 |
|---|---|
| ポートレット名 | filter-mappingのfilter-name要素です。必須項目。ドロップダウンリストから該当のプロジェクトのポートレット名を選択することができます。 |



package パッケージ名;
import java.io.IOException;
import javax.portlet.*;
import javax.portlet.filter.*;
public class クラス名 extends スーパークラスimplements レンダーフィルター, アクションフィルター, イベントフィルター, リソースフィルター {
/**
* When the filter is initialized, it is executed only once.
*/
public void init(FilterConfig filterConfig) throws PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool.
}
// レンダーフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(RenderRequest request, RenderResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// アクションフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(ActionRequest request, ActionResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// イベントフィルターインタフェー??の実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(EventRequest request, EventResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// リソースフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(ResourceRequest request, ResourceResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
/**
* It is called when the filter is destroyed.
*/
public void destroy() {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool.
}
}
| 項目 | 説明 |
|---|---|
| クラス名 | 指定したフィルターのJavaファイル名 |
| スーパークラス | フィルターの継承するスーパークラス |
| パッケージ名 | フィルタークラスのパッケージ |
| レンダーフィルター | javax.portlet.filter.RenderFilterのインタフェース(描画) |
| アクションフィルター | javax.portlet.filter.ActionFilterのインタフェース(アクション) |
| イベントフィルター | javax.portlet.filter.EventFilterのインタフェース(イベント) |
| リソースフィルター | javax.portlet.filter.ResourceFilterのインタフェース(リソース) |
// レンダーフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(RenderRequest request, RenderResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// レンダーフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(RenderRequest request, RenderResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// イベントフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(EventRequest request, EventResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}
// リソースフィルターインタフェースの実装
/**
* It is a main body of the filter processing. When the filter is called, it
* is executed every time.
*/
public void doFilter(ResourceRequest request, ResourceResponse response, FilterChain chain) throws IOException, PortletException {
// TODO Stub method generated by NEC WebOTX Developer, Portlet Tool. Filter’s logic must be implemented.
chain.doFilter(request, response);
}


| ロケール | ロケール情報 |
|---|---|
| default | 未指定 |
| ja | 日本語 |
| en | 英語 |
| ON にする | OFF にする | |
|---|---|---|
| < リソースファイル名 >.properties | ○ | ○ |
| < リソースファイル名 >_ja.properties | ○ | ○ |
| < リソースファイル名 >_en.properties | ○ | ○ |
| portlet.xml の <supported-locale> 内容 | ○ | × |






| 項目 | 説明 |
|---|---|
| Webプロジェクト | 指定したポートレットプロジェクトです。 |
| 宛先 | ポートレットのアーカイブを保存する場所です。 |
| ターゲット・ランタイム | デフォルト値はポータルサーバです。 |
| ソース・ファイルのエクスポート | ONにする場合、アーカイブにJava ソース ファイルを含みます。 |
| 既存ファイルを上書き | 同名のファイルが存在した場合、上書きします。 |






<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
</head>
<body>
Hello World!
</body>
</html>
<init-param> <name>ViewPage</name> <value>/index.jsp</value> </init-param>
| WebOTX ポートレットタグ名 | 概要 |
|---|---|
| <otxp:winstat> | ウィンドウ状態での画面の切り替えのカスタムタグです。 |
| <otxp:swf> | SWFアプリケーションを呼び出しカスタムタグです。 |
| <otxp:drag> | HTML上のDrag可能な箇所の指定とDrag時の動作を制御するカスタムタグです。 |
| <otxp:drop> | HTML上のDrop可能な箇所の指定とDrop時の動作を制御するカスタムタグです。 |
| <otxp:ajax> | ポートレット中で非同期の部分更新を定義するカスタムタグです。 |
| <otxp:call> | <otxp:ajax> タグで定義した処理を呼び出すカスタムタグです。 |
<%@ taglib uri="http://www.nec.com/webotx/portlet" prefix="otxp"%> <otxp:winstat viewStandard="[normal|maximized|all|none]">ユーザコンテンツ</otxp:winstat>
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| viewStandard | 文字列 | all | × | 表示する標準ウィンドウ状態を指定する。指定できる値は以下。
|
<%@ taglib uri="http://www.nec.com/webotx/portlet" prefix="otxp"%>
<otxp:swf url="[url]"
id="[id]"
width="[width]"
height="[height]"
flashVars="[flashVars]"
params="[params]"/>
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| url | 絶対URL | なし | ○ | swfのURLを指定します。 |
| width | 数値(pixels)または割合指定(%) | なし | × | swfの幅を指定します。 |
| height | 数値(pixels)または割合指定(%) | なし | × | swfの高さを指定します。 |
| id | 文字列 | なし | × | IE:Web ブラウザなどのホスト環境におけるオブジェクトの識別子です。 Firefox:ムービーの名称を定義します。 |
| flashvars | 文字列 形式:「変数名1=値1&変数名2=値2…」 |
空文字列 | × | SWFアプリケーション内部で利用する任意の引数を指定します。 |
| params | 文字列 形式:「変数名1=値1&変数名2=値2…」 同じ変数名が指定された場合、最後の変数値が有効になります。 |
なし | × | SWF呼び出し時に必要なパラメータを指定します。 |
<otxp:drag id="[id]"
model="[client|server]"
copyOnly="[true|false]"
onDndStart="[onDndStart]"
onDndSourceOver="[onDndSourceOver]"
onDndCancel="[onDndCancel]"
handleAs="[text|json|json-comment-optional|json-comment-filtered|javascript|xml]"
method="[get]"
content="[content]"
timeout="[timeout]"
load="[load]"
error="[error]"
>
<div class="otxpDndItem otxpDndSrc="data">ドラッグコンテンツ</div>
</otxp:drag>
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| id | 文字列(セミコロンを含めず) | なし | ○ | ドラッグソースとなる要素を特定するために使われます。同一のJSP内で一意な値を指定する必要があります。 |
| model | client|server | client | × | サーバへ通信するかどうか判別するために使われます。
|
| copyOnly | true|false | true | × | ブラウザ上のドラッグソースをコピーしてドラッグするか、カット&ペーストで移動するかを指定します。
|
| onDndStart | 文字列(JavaScript関数名) | なし | × | クライアント側でドラッグ開始時のカスタム動作の関数名を指定します。 functionName(source,nodes,copy) のインターフェイスで定義します。 |
| onDndSourceOver | 文字列(JavaScript関数名) | なし | × | クライアント側でDragソースにマウスを乗せた時のカスタム動作の関数名を指定します。 functionName(source) のインターフェイスで定義します。 |
| onDndCancel | 文字列(JavaScript関数名) | なし | × | クライアント側でドロップ取消し時のカスタム動作の関数名を指定します。 functionName() のインターフェイスで定義します。 |
| handleAs | textのみ | text | × | 受信時のレスポンスフォーマットを指定します。 |
| method |
|
get | × | HTTPリクエストのメソッドです。 |
| content | 文字列 形式:「変数名1:値1,変数名2:値2」 |
なし | × | クライアント側からサーバ側に送信するデータを指定します。複数ある場合は、カンマで区切ります。 |
| timeout | 整数 | 30 | × | タイムアウト時の時間を指定します。指定範囲:[0,3600]。0の場合はタイムアウトしません。 |
| load | 文字列(Javascript関数名) | なし | × | HTTPレスポンスが成功を返した場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
| error | 文字列(Javascript関数名) | なし | × | リクエストに失敗した場合やサーバエラーの場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
function function OtxDrag<portlet:namespace />_myLoad(responseData) {
var data1 = "データ";
var responseData += encodeURIComponent( data1);
return responseData;
}
<%@ taglib uri="http://www.nec.com/webotx/portlet" prefix="otxp"%>
<otxp:drop id="[id]"
model="[client|server]"
handleResponse="[handleResponse]"
accept="[accept]"
onDndDrop="[onDndDrop]"
onDndDropBefore="[onDndDropBefore]"
handleAs="[text|json|json-comment-optional|json-comment-filtered|javascript|xml]"
method="[get|post]"
content="[content]"
timeout="[timeout]"
load="[load]"
error="[error]"
handle="[handle]">
</otxp:drop>
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| id | 文字列 | なし | ○ | Drop対象となる要素を特定するために使われます。同一のJSP内で一意な値を指定する必要があります。 |
| model | client|server | client | × | サーバへ通信するかどうか判別するために使われます。
|
| handleResponse | 文字列(JavaScript関数名) | なし | × | Drop側がclientの場合に Drag側のサーバレスポンスを扱う関数を指定します。 |
| accept | 文字列(変数1,変数2) | なし | × | ドロップできるドラッグソースを限定するために使用します。ドロップ可能な <otxp:drag>タグのidを指定します。 複数指定する場合はカンマで区切ります。 |
| onDndDrop | 文字列(JavaScript関数名) | なし | × | クライアント側でドロップ終了時のカスタム動作の関数名を指定します。 functionName(source, nodes, copy, target) のインターフェイスで定義します。 |
| onDndDropBefore | 文字列(JavaScript関数名) | なし | × | クライアント側でドロップの前にカスタム動作の関数名を指定します。 |
| handleAs |
|
text | × | 受信時のレスポンスフォーマットを指定します。 |
| method |
|
get | × | HTTPリクエストのメソッドです。 |
| content | 文字列 形式:「変数名1:値1,変数名2:値2」 |
なし | × | クライアント側からサーバ側に送信するデータを指定します。複数ある場合は、カンマで区切ります。 |
| timeout | 整数(秒) | 30 | × | タイムアウト時の時間を指定します。指定範囲:[0,3600]。0の場合はタイムアウトしません。 |
| load | 文字列(Javascript関数名) | なし | × | HTTPレスポンスが成功を返した場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
| error | 文字列(Javascript関数名) | なし | × | リクエストに失敗した場合やサーバエラーの場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
| handle | 文字列(Javascript関数名) | なし | × | 通信終了時に成功、失敗に関わらずコールされる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
<%@ taglib uri='http://www.nec.com/webotx/portlet' prefix='otxp'%>
<otxp:ajax id="[id]"
handleAs="[text|json|json-comment-optional|json-comment-filtered|javascript|xml]"
method="[get|post]"
content="[content]"
load="[load]"
error="[error]"
timeout="[timeout]"
handle="[handle]"
/>
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| id | 文字列 | なし | ○ | ajaxタグのIDを指定します。ajaxタグを呼び出す際に利用されます。同一のJSP内で一意な値を指定する必要があります。 |
| handleAs |
|
text | × | 受信時のレスポンスフォーマットを指定します。 |
| method |
|
get | × | HTTPリクエストのメソッドです。 |
| content | 文字列 形式:「変数名1:値1,変数名2:値2」 |
なし | × | クライアント側からサーバ側に送信するデータを指定します。複数ある場合は、カンマで区切ります。 |
| timeout | 整数 | 30 | × | タイムアウト時の時間を指定します。指定範囲:[0,3600]。0の場合はタイムアウトはしません。 |
| load | 文字列(Javascript関数名) | なし | × | HTTPレスポンスが成功を返した場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
| error | 文字列(Javascript関数名) | なし | × | リクエストに失敗した場合やサーバエラーの場合に呼ばれる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
| handle | 文字列(Javascript関数名) | なし | × | 通信終了時に成功、失敗に関わらずコールされる関数を指定します。 functionName(response, ioArgs) のインターフェイスで定義します。 |
<%@ taglib uri="http://www.nec.com/webotx/portlet" prefix="otxp"%> <otxp:call funcId="[funcId]" type="[type]" />
| 属性名 | 値 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| funcId | 文字列 | なし | ○ | 呼び出したい <otxp:ajax> タグのIDを指定します。 |
| type | ajax | ajax | × | 呼び出すタグのタイプを指定します。 |
<otxp:winstat viewStandard="all"></otxp:winstat>
<otxp:swf url="" id="" width="" height="" flashVars="" params="" />
<otxp:drag id="drag_"
model="client"
copyOnly="true"
onDndStart="<portlet:namespace />_onDndStart"
onDndSourceOver="<portlet:namespace />_onDndSourceOver"
onDndCancel="<portlet:namespace />_onDndCancel"
handleAs="text"
method="get"
content=""
timeout="30"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
handle="<portlet:namespace />_handle">
<div class="otxpDndItem" otxpDndSrc="data">Content</div>
</otxp:drag>
<script type="text/javascript">
function <portlet:namespace />_onDndStart(){
}
function <portlet:namespace />_onDndSourceOver(){
}
function <portlet:namespace />_onDndCancel(){
}
function <portlet:namespace />_load(){
}
function <portlet:namespace />_error(){
}
function <portlet:namespace />_handle(){
}
</script>
<otxp:drop id="drop_"
model="client"
accept=""
onDndDropBefore="<portlet:namespace />_onDndDropBefore"
onDndDrop="<portlet:namespace />_onDndDrop"
handleAs="text"
method="get"
content=""
timeout="30"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
handle="<portlet:namespace />_handle">
<div class="otxpDndItem"></div>
</otxp:drop>
<otxp:drop id="drop_"
model="client"
handleResponse="<portlet:namespace />_handleResponse"
accept=""
onDndDropBefore="<portlet:namespace />_onDndDropBefore"
onDndDrop="<portlet:namespace />_onDndDrop"
handleAs="text"
method="get"
content=""
timeout="30"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
handle="<portlet:namespace />_handle">
<div class="otxpDndItem"></div>
</otxp:drop>
<script type="text/javascript">
function <portlet:namespace />_onDndDropBefore(){
}
function <portlet:namespace />_onDndDrop(){
}
function <portlet:namespace />_load(){
}
function <portlet:namespace />_error(){
}
function <portlet:namespace />_handle(){
}
function <portlet:namespace />_handleResponse(responseData){
}
</script>
<otxp:ajax id="ajax_"
method="get"
content=""
handleAs="text"
timeout="30"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
handle="<portlet:namespace />_handle" />
<otxp:ajax id="ajax_"
method="get"
content=""
handleAs="text"
timeout="30"
load="<portlet:namespace />_load"
error="<portlet:namespace />_error"
handle="<portlet:namespace />_handle" />
<script type="text/javascript">
function <portlet:namespace />_load(){
}
function <portlet:namespace />_error(){
}
function <portlet:namespace />_handle(){
}
</script>
<otxp:call funcId="" type="ajax"/>
<portlet:namespace />_ func() {
//TODO
}
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {
try {
javax.xml.namespace.QName qName = new javax.xml.namespace.QName("http://com.nec.webotx", "eventName", "prefix");
java.lang.String data = "";
response.setEvent(qName, data);
} catch (Exception e) {
e.printStackTrace();
}
}
@javax.portlet.ProcessEvent(qname = "{http://com.nec.webotx}eventName")
public void handleEvent(EventRequest request, EventResponse response) throws PortletException, IOException {
javax.portlet.Event event = request.getEvent();
java.lang.String data = (java.lang.String) event.getValue();
}
public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {
String publicRenderParamValue = request.getParameter("id");
response.setRenderParameter("id",
publicRenderParamValue);
}
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
String resourceID = request.getResourceID();
PrintWriter writer;
writer = response.getWriter();
writer.print(“Hello Ajax!”);
}
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
@RenderMode(name = "about")
public void doCustomAbout(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
@RenderMode(name = "edit_defaults")
public void doCustomEditDefaults(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
PortletPreferences prefs = request.getPreferences();
String data = prefs.getValue("KEY_NAME", "");
PortletPreferences prefs = request.getPreferences();
prefs.setValue("PEF_KEY", "value");
try {
prefs.store();
} catch (ValidatorException e) {
// TODO handle the exception
e.printStackTrace();
} catch (IOException e) {
// TODO handle the exception
e.printStackTrace();
}
<div id ="<portlet:namespace/>Content">
<input dojoType="dijit.form.TextBox" id="textBox_<portlet:namespace/>">
</div>
<script type="text/javascript" >
dojo.require("dojo.parser");
dojo.require("dijit.form.TextBox");
dojo.parser.parse(dojo.byId("<portlet:namespace/>Content"));
</script>
<div dojoType="dijit.ColorPalette" id="colorPalette_<portlet:namespace/>"></div>
<div dojoType="dijit.Dialog" id="dialogOne<portlet:namespace />" title="Dialog Title"></div>
<input type="button" value="Show me!" onclick="show<portlet:namespace />()" />
<script type="text/javascript">
function show<portlet:namespace />() {
dijit.byId("dialogOne<portlet:namespace />").show();
}
</script>
<div dojoType="dijit.Editor" name="field" id="editor_<portlet:namespace/>"></div>
<button dojoType="dijit.form.Button" type="button" label="Button" id="button_<portlet:namespace/>"></button>
<input dojoType="dijit.form.CheckBox" id="checkBox_<portlet:namespace/>" />
<div dojoType="dijit.form.ComboButton" id="comboButton_<portlet:namespace/>"></div>
<input type="text" dojoType="dijit.form.CurrencyTextBox" id="currencyTextBox_<portlet:namespace/>" currency="JPY" />
<input type="text" dojoType="dijit.form.DateTextBox" id="dateTextBox_<portlet:namespace/>" />
<div dojoType="dijit.form.Form" id="form_<portlet:namespace/>" action="" method=""></div>
<input type="radio" dojoType="dijit.form.RadioButton" id="radioButton_<portlet:namespace/>"/>
<input type="text" class="otxpDndItem" dojoType="dijit.form.DateTextBox" id="textBox_<portlet:namespace/>"/>
<div dojoType="dijit.TitlePane" title="Title"></div>
<span id="text<portlet:namespace/>">text</span><span dojoType="dijit.Tooltip" connectId="text<portlet:namespace/>">tooltip</span>
<div dojoType="dijit.ProgressBar" jsId="jsProgress">
</div>
<input type="button" value="Start" onclick="download<portlet:namespace/>();" />
<script type="text/javascript">
function download<portlet:namespace/>(){
var step = 0;
jsProgress.update({
maximum: 1,
progress: ++step
});
}
</script>
<input type="text" class="otxpDndItem" dojoType="dijit.form.DateTextBox" id="textBox_<portlet:namespace/>"/>
WebOTX Portalをスマートデバイス向けアプリケーションで利用する場合、表示するページ一覧、および、ポートレットをアイコンに関連付けます。
スマートデバイスアプリケーションで提供するアイコンの説明をします。
| アイコンイメージ | アイコン名 | ファイル名 | 説明 |
|---|---|---|---|
|
ページアイコン | 任意のファイル名.png | サイトの各ページに関連付けられるアイコンです。アイコンの下にページ名が表示されます。 |
|
‐ | ‐ | ポートレットにアイコンが関連付けられていない場合のアイコンです。 |
|
お知らせポートレット リンク集ポートレット |
announcePortletIcon.png | お知らせポートレット、もしくは、リンク集ポートレットに関連付けられるアイコンです。 |
|
メニューポートレット | menuPortletIcon.png | メニューポートレットに関連付けられるアイコンです。 |
|
コンテンツ表示ポートレット 認証連携ポートレット |
contentsPortletIcon.png | コンテンツ表示ポートレット、認証連携ポートレットに関連付けられるアイコンです。 |
|
RSSリーダーポートレット | RSSportletIcon.png | RSSリーダーポートレットに関連付けられるアイコンです。 |
|
グラフ表示ポートレット | graphPortletIcon.png | グラフ表示ポートレッに関連付けられるアイコンです。 |
|
地図表示ポートレット | mapPortletIcon.png | 地図表示ポートレットに関連付けられるアイコンです。 |
ポータルサーバの以下のディレクトリに、スマートデバイスアプリケーションでページ一覧を表示する際に使用するアイコンを登録します。
アイコンファイル格納フォルダ
${WEBOTX_INSTANCE_ROOT}/config/portal/resources/webotxportal/images/page/
格納したアイコンファイルの一覧をプロパティファイルに記載します。
ページアイコンを定義するプロパティファイル(pageIcon.properties)
${WEBOTX_INSTANCE_ROOT}/config/portal/resources/webotx-portal/images/page/pageIcon.properties
| プロパティ名 | 値 | デフォルト値 | 説明 |
|---|---|---|---|
| com.nec.webotx.portal.ui.page.iconlist | 文字列(アイコンのファイル名) | なし | ページアイコンのファイル名を半角カンマ区切りで定義 |
ポートレットデプロイメント述子( portlet.xml )のinit-paramに、アイコンファイル名を定義します。
なお、指定したアイコンファイルは、WEB-INFと同列にimagesディレクトリを作成し、そのディレクトリに格納します。
| パラメータ名 | 値 | デフォルト値 | 説明 |
|---|---|---|---|
| webotx-portlet-icon | 文字列(アイコンのファイル名) | なし | ポートレットアイコンのファイル名を定義します。 |
portlet.xmlの設定例
<init-param>
<name<webotx-portlet-icon</name<
<value<announcePortletIcon.png</value>
</init-param>
<div id="<portlet:namespace/>Content">
<input type="text" dojoType="dijit.form.TextBox"/>
</div>
<script type="text/javascript">
dojo.parser.parse(dojo.byId("<portlet:namespace/>Content"));
</script>
.dojoInline {
border: 1px !important;
}