※ ChatGPTを利用し、要約された質問です(原文:java/strutsのFormの役割について)
Java/StrutsのFormクラスとBeanクラスの役割について
このQ&Aのポイント
Java/Strutsで開発を行なっている場合、Formクラスは画面の入力項目をDB接続クラスへ渡すための値の詰め替えを行います。
一方、BeanクラスはDB接続クラスから返却される検索結果を画面のFormクラスに詰め替える役割を担っています。
Formクラスには変換メソッドを持つことが推奨されており、基本的には値のセットやシンプルなロジックの処理を行います。
現在java/Strutsで開発を行なっています。
DB接続クラス(以下opeクラス)への値の受け渡しは、Beanクラスで行なっています。
※単一項目の場合はBeanクラスは使用せず、そのまま渡す場合もあります。
(1)画面の入力項目をopeクラスへ渡す場合のFormクラスからBeanクラスへの変換(値の詰め替え)
(2)opeクラスから返却される検索結果のBeanクラス⇒Formクラスへの変換(値の詰め替え)
(1)、(2)の処理はどこに持つべきものでしょうか?
現在のクラス構成は
XXXForm⇒strutsのFormクラス
XXXAction⇒strutsのActionクラス
XXXCtrl⇒Actionから呼ばれるビジネスクラス
XXXope⇒⇒ビジネスクラスから呼ばれるDB接続クラス
XXXBean⇒opeとの値のやり取りを行なうクラス
自分はビジネスクラスに実装をしようと思ったのですが
Formクラスに実装するべきだ、といわれました。
値の紐付けの意味もこめて、Formに変換メソッドを持つべきらしいです。
変換にあたって、基本そのまま値を設定する前提です。
(少しだけロジックも存在しますが、A変数の値が~だったらB変数に値を入れる程度)
自分的にはFormクラスは画面、BeanクラスはDB接続とのやり取り
それぞれ位置づけが異なるため、FormクラスにBeanクラスを宣言するのはどうかと思いました。
本来はどのような形が正しいのでしょうか?
お礼
ありがとうございました SRPという事を始めて知り、とても参考になりました。 ちなみに、今のところ変換専用のconverterクラスを新たに作成することになりました。 Formに実装されなくて良かったです。