サポート > リポジトリ > 業務ロジック > モデルの基本 (2)

プレゼンテーションモデル、コンディションモデル、リストモデルを説明します。

ストアモデルにおけるモデル参照項目は、参照先モデルの主キーのみを保持します。これに「内容部」を含めたものがプレゼンテーションモデルです。

それぞれ「ID部」「内容部」と呼んで区別します。

プレゼンテーションモデルには、画面に表示されるすべての情報が含まれます。 プレゼンテーションモデルは「表示モード」と「更新モード」があります。両者はモデル参照の扱いが異なります。

表示モードは、ストアモデルがもつ参照モデルのIDに対応した内容部をもちます。これは1:1の関係です。

更新モードは、選ばれなかった他の選択肢もすべて含まれています。登録、更新画面では、現在選ばれているもの以外(候補)も画面に表示されます。これらの選択肢が含まれています。

図1 プレゼンテーションモデルのイメージ(XML形式で表現)

生成のタイミング

登録画面 - 画面表示

初期値が設定された最初のストアモデルが生成されます。主キーは未定の状態です。これをプレゼンテーションモデル(更新モード)に変換し、Webフォームで用います。

登録画面 - 登録

Webフォームから入力された値を元に、プレゼンテーションモデルが生成されます。このプレゼンテーションモデルをストアモデルに変換し、データベースに格納します。

更新画面 - 画面表示

データベースから読み込んだストアモデルをプレゼンテーションモデル(更新モード)に変換し、Webフォームで用います。

更新画面 - 更新

Webフォームから入力された値を元に、プレゼンテーションモデルが生成されます。このプレゼンテーションモデルをストアモデルに変換し、データベースに格納します。

詳細画面

データベースから読み込まれたストアモデルを、プレゼンテーションモデル(表示モード)に変換します。これを画面に出力します。

型について

プレゼンテーションモデルがもつ値はすべて「文字列型」です。ストアモデルとの相互変換の際、適切な型へ変換されます。

プレゼンテーションモデル固有の情報

モデル項目毎に、入力エラーに関する情報を保持します。また選択肢(リストボックス、ラジオボタン、チェックボックス)の場合、選択状態にあるかどうかという情報を保持します。

入力エラーの扱い

登録・更新画面における入力エラー発生時は、エラーメッセージが埋め込まれたプレゼンテーションモデルが再作成され、入力画面に再送されます。

コンディションモデルはストアモデルとほぼ同じ形ですが、データベースに保存されません。

数値型と日付型の範囲検索では、二つの入力欄を管理します。Javaクラス内部では「項目名 + "jshparam1"」「項目名 + "jshparam2"」というフィールドが用意されます。

コンディションモデルは「(HTTP)セッション」に保存されます。このため、検索画面毎にコンディションモデルの状態が記憶されます。

検索結果(ストアモデルの集合)から、一覧表示画面に出力させる項目を選択し、「Item」という入れ物に格納しています。

表示側では、リストモデルに格納されているItemをループで処理することで一覧表示を実現します。

図2 リストモデルのイメージ(XML形式で表現)