6.6.2 プロパティの追加

既存のクラスにプロパティを追加して使用します。

この例では,サンプルWebアプリケーションの文書クラスのプロパティに文書種別を追加します。

<この項の構成>
(1) コンテキストパラメタを追加する
(2) オブジェクトモデルクラスに定義を追加する
(3) デフォルト値の設定
(4) 文書を扱う処理で操作するプロパティを追加する

(1) コンテキストパラメタを追加する

サンプルWebアプリケーションでは,オブジェクトモデル(クラス,プロパティ)に関する情報は,配置ディスクリプタに定義して設定を変更できるようになっています。このため,追加するプロパティを配置ディスクリプタのコンテキストパラメタのオブジェクトモデルに追加します。

この例では,文書種別プロパティ(model.prop.docType)を追加します。

(例)配置ディスクリプタの編集例

<web-app>
       :
<context-param>
 <param-name>app.mode</param-name>
 <param-value />
</context-param>
       :
<context-param>
 <param-name>model.prop.docType</param-name>
 <param-value />
</context-param>
       :

(2) オブジェクトモデルクラスに定義を追加する

サンプルWebアプリケーションでは,オブジェクトモデル(クラス,プロパティ)についての情報をコアアプリケーションクラスのDwcModelMap.javaで保持しています。このため,追加するプロパティの定義をDwcModelMap.javaに追加します。

クラスの詳細は,javadocで出力するドキュメントを参照してください。

(例)DwcModelMap.javaの編集例

public class DwcModelMap {
       :
public final static String PARAM_MODEL_PROP_DOCTYPE = "model.prop.docType";
DwcModelMap(DwcAppParams params) {
       :
   propDocType = params.getParam(PARAM_MODEL_PROP_DOCTYPE);
       :
   propTypeMap.put(propDocType, typeStr);
}
       :
public String propDocType = null;
       :
}

(3) デフォルト値の設定

追加したコンテキストパラメタにデフォルト値を設定できます。

コンテキストパラメタに対するデフォルト値の設定は,アプリケーション起動時にコアアプリケーションクラスのDwcCoreApp.javaのinitParamsメソッドで行います。デフォルト値の定義には,コアアプリケーションクラスのDwcAppParams.javaのsetParamOrDefaultメソッドを使用します。

各クラスとメソッドの詳細は,javadocで出力するドキュメントを参照してください。

この例では,次に示す定義をDwcCoreApp.javaとDwcAppParams.javaに追加して,model.prop.docType(文書種別プロパティ)のデフォルト値に「dwcProp_DocType」を設定します。

(例)DwcCoreApp.javaの編集例

public class DwcCoreApp {
       :
 public void initParams() {
       :
// model.
       :
params.setParamOrDefault(DwcModelMap.PARAM_MODEL_PROP_DOCTYPE, "dwcProp_DocType");
       :

(4) 文書を扱う処理で操作するプロパティを追加する

追加したプロパティは,JSPファイルから,コマンドサーブレットに渡すリクエストパラメタでプロパティを指定することで参照・更新することができます。

この例では,追加したmodel.prop.docType(文書種別プロパティ)の参照・更新を行います。なお,参照・更新の対象となる個所については,「6.3.3 JavaクラスファイルとJSPファイルの対応」を参照して検討します。

(例)JSPファイルの編集例

<html>
       :
 <input type="hidden" name="<%= DwcParamDef.GET_PROP %>0" value="<%= model.prop.docType %>">
       :
</html>

<html>
       :
 <input type="hidden" name="<%= DwcParamDef.SET_PROP %>0" value="<%= model.prop.docType %>">
       :
</html>