• 締切済み

コンポジットパターンで作成した最上位のコンポーネントからiterateで表示する方法

コンポジットパターンを使用してエクスプローラーのツリー構造を作成しています。 最上位のコンポーネントには、ディレクトリやファイルデータがはいっています。 System.out.prinlnでコンソールでは出力できるのですが、JSPで最上位→1階層目→2階層目と出力 するには、どのようにして、1階層目とか、判断していけばよいのでしょうか。 現状では、ひとつしかでません。 コンポジットパターンを使用して再帰的な処理というのは理解できるのですが、取得する方法など、 どのように考えればよいでしょうか? SWINGではなく新規でエクスプローラー画面を作ることになりつまっています。

みんなの回答

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

要するにSystem.out.println(object)でツリー構造のテキストを出力したいということでしょうか。 それなら次のような感じでどうでしょうか。 public String toString(){ // 自分自身の文字列表現を出力 文字列表現はgetStringに実装 String myStringExpression = this.getString(); // 子ノードの文字列表現を取得 String childStringExpressioin = ""; for( ... ){ //子ノードのリストに対してループ childStringExpression += childItem.toString(); } // 必要ならばchildStringExpressionにインデントを付与 return myStringExpression + childStringExpression; } こう再帰的にtoStringを呼び出すことで最初にtoStringされたコンポジット以下の階層を出力できるでしょう。 最上位から出力したいのなら、JSP内で最上位コンポジットを記憶しておけばいいのではないでしょうか。

mic2005
質問者

お礼

遅くなりましてすみません。 上記参考にしてみます。コンポジットパターンを作成したものの、取り出しについての文献がなくこまっていました。ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A