0

MVCが実際にどのように機能するかについて少し混乱しています。

これまでのところ、これは私が持っているタイプのものです:

  1. 静的 JSP ページには、コントローラ サーブレットにポストするフォームがあります。
  2. コントローラーは、データベース アクセス オブジェクトを使用してデータベースから適切な情報を取得し、それを Java Bean に格納します。
  3. その Java Bean をリクエスト属性として設定し、他の JSP ページに転送して表示します。

私が混乱しているのは、アクセスしている最初のjspページが静的ではなく、コントローラーに投稿して取得するフォームを持たずに表示用のJava Beanを取得する必要がある場合の対処方法です。

JSP ページ内から必要な Java Bean を生成するためにデータベース アクセス オブジェクトを呼び出すと、MVC に反するように思えます。

だから私の質問は、これをどのように処理する必要がありますか? この場合、MVC の原則に従いながら、必要な Java Bean を取得するにはどうすればよいですか?

ありがとう!

編集:より明確にするためにいくつかのコードを追加します:

現時点では、ホテルのリストを表示することになっている owner.jsp というページがあります。そのページ内で、次のようなホテルのリストを取得しています。

<%
    HotelDAO hotelDAO = new HotelDAO();
    List<HotelBean> hotels = hotelDAO.getHotels();
    pageContext.setAttribute("hotels", hotels);
%>

次に、EL を使用して、forEach ループを使用して各ホテルを表示します。

これはコントローラーをまったく通過しません。これを MVC モデルで動作させるにはどうすればよいでしょうか?

"hotels" Bean が設定されているかどうかをチェックしてコントローラ ページに転送し、コントローラ ページが "hotels" Bean を設定して owner.jsp ページに転送するのは論理的ではないように思えます。

このような場合、MVC はユーザーが常にコントローラーを通過することをどのように確認しますか? 以前に書いた他のページはすべて静的で、何らかのフォームを送信したときにのみコントローラーに送られ、いくつかの Bean が設定され、表示のためにいくつかのページに転送されました。

4

0 に答える 0