0
MVCモデル間でのデータ受け渡し
いつも拝見しています。
初めての質問ですので、説明不足等ありましたらご指摘お願いします。
現在Webシステムの勉強の為、掲示板を作成しています。
まず、Struts等のフレームワークを使わず、Servletのみで作成しました。
これは問題なく作成出来たのですが、今度はJSP、Servlet、Beanで、MVCモデルを意識して同じ物を作成しようとした所、疑問があります。
以下、JSP→コントローラ(Servlet)→Bean以降の流れ
1.BeanでDBからデータを取得し、プロパティ(メンバ変数)にset
2.コントローラ(Servlet)でRequestにBeanオブジェクトをsetAttribute
3.JSPをforwardで呼び出す
4.forward先のJSPでjsp:useBeanし、jsp:getPropertyで表示
自分がインターネットで調べた範囲では、ほぼこの流れで書いてありました。
DBから取得するデータが1件の場合には、上記手順で問題なく実装できました。
しかし、複数件取得される場合、Bean内でDBの値を配列にsetし、getPropertyでプロパティを取得すると、配列の文字列が返されてしまいました。
JSPから生成されるjavaを見るとorg.apache.jasper.runtime.JspRuntimeLibrary.toString()というメソッドが呼ばれているようなので、配列やコレクションは受け渡し出来ないのかなと想像しました。(もし出来るのであれば方法を知りたいです)
取りあえず実現する方法として、JSPから直接Beanを使って、スクリプトレット内でgetメソッドを呼び、配列の取得は出来たのですが、これだとコントローラを経由していないのでMVCとは言えないのではないかなと・・・。
(スクリプトレットはあまり使わない方が良い様な話も見かけますし)
Webシステム構築の実務を経験したことが無いので、実際皆さんが現場でこういう場合どうされるのかな?と疑問が沸きました。
普通、こうするよ。という様な方法がありましたら教えて頂きたいです。
※Beanのメンバ変数に配列なんて持たせる事自体おかしいと言うのでも結構です。でもその場合どうしたら良いのか・・・。
知っている方からすると、低レベルな質問だとは思いますがよろしくお願いします。