2009-05-01 16 views
1

Web開発のMVCアプローチの目標の1つは、モデル、ビュー、コントローラを分離することです。Java EE Webアプリケーション用の単純なMVC?

Java EE Strutsのような環境では、Strutsアクションをコントローラに関連付け、Java Beanをモデルに関連付け、JSPおよび/またはActionFormをビューに関連付けることができます。

私の質問では、JSPでデータを取り込むためにロジックを実行する傾向があります。ビューのActionFormにあらゆる種類のロジックや処理を入れて、JSPにあらゆる種類のロジックを入れることは非常に悪いことです。

ビューフォームをユーザーに表示する前に、そのデータを操作するための「マネージャ」クラスを含めますか?

これは簡単な例です。あなたはファーストネーム、姓をデータベースから取り出し、フォーマットをきれいにする必要があります(すべて大文字の文字列を混合の場合に変換します)。 JSPビューに入る前にその文字列を操作するロジックは、そのロジックをマネージャークラスに追加しますか?

答えて

3

ビューに関連するロジック(例では、データを「きれいに見える」ようにする)があれば、ビューに配置します。ただし、後で変更されたデータを保存する場合は、ビジネスレイヤに配置する必要があります。しかし、一般的には、ViewとControl(マネージャークラス)の間にレイヤーを置く傾向があります。これは、ディスプレイの問題と高度な入力検証にのみ関係しますが、複雑なビジネスルールではありません。ビジネス層)。

1

これは、使用しているフレームワークによって大きく異なります。私は、このようなことは視野に入れて行うべきだと思いますが、あなたがどのように変わっていくのかはまちまちです。

JSPを使用している場合は、カスタムタグライブラリを作成して、実際のHTMLとは別に「ビュー」内にあるようにすることができます。

だから、あなたのようなものだろう。そのような文字列を大文字化などの簡単なプレゼンテーションの懸念等のため

<td><mytag:mixedCase value="${user.firstname}" /></td> 

0

を、私はJSPでそれを置くでしょう。もっと複雑なビジネスロジックのために、私はモデルクラスに入れます。あなたはビジネスロジックでコントローラを混乱させたくありません。これをモデルに組み込むもう1つの利点は、単体テストできることです。

関連する問題