JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
Spring-MVCの散歩道 > 応用の森(総合テクニック編) > ツリー階層構造表現

■応用の森 階層構造Tree View コントローラ
コントローラ周りについては、Tree View 表現を行うための特別な処理はありません。
定型的な、FormBeanによるデータ継承と、ビジネスロジック、XMLマッパーによる
DB検索の定型的な処理を行っているだけです。
1)コントローラ
まず、コントローラ。
src/main/java/jp/dip/arimodoki/cntl/CreatureClass.java
最初のメソッド、creaturetree()は、単に初期画面(creature_tree.html)を表示するだけの
単純なメソッドです。

2番目のメソッド、creatureclass()は、viewのjQuery Ajaxにより実行されるメソッドで、
親分類のcode(parent)を受け取って、FormBeanに継承し、ビジネスロジックでDB検索を実行します。
検索結果を、creature_child.html に返却します。
2)ビジネスロジック
次は、DBを検索するためのビジネスロジックです。
src/main/java/jp/dip/arimodoki/blogic/BlCreatureClass.java
コントローラから継承されたパラメータで、生物分類テーブルを検索し
検索結果のリストから、各ノードの状態のスタイルを設定して、
FormBeanに格納しコントローラに返却します。
3)リクエストパラメータ格納FormBean
次は、リクエスト/レスポンスのパラメータを格納するFormBean
src/main/java/jp/dip/arimodoki/model/FormCreatureClass.java
viewからのリクエストパラメータ(parent/rute)を受け取り、
ビジネスロジックに継承し、
ビジネスロジックからの検索結果をviewに返却するためのbeanです。
4)DTO(DataTableObject)
次は、DB検索結果データを格納するDTO(DataTableObject)
src/main/java/jp/dip/arimodoki/model/dto/DtoTblClass.java
クラスのプロパティと、生物分類マスタテーブル(tblClass)のフィールドが連携しています。
5)XML Mapperインターフェース
次は、DB検索実行処理を行うマッパーインターフェース
src/main/java/jp/dip/arimodoki/mapper/TblClassMap.java
メソッドと、SQLマッパーのidが対応しています。
6)SQL Mapper
最後が、DB検索実行部本体のSQLマッパー定義です。
/WebContentWEB-INF/mappers/TblClassMap.xml

 

いかがでしょう、全体的に意外と単純なプログラムですが、
DBのデータさえうまく繋がれば、理論的には無限にツリーを展開することが可能です。