Tableのヘッダ表示させたくないなぁ・・・
というわけで
Table outerTable = new Table("parent"){ protected void renderHeaderRow(HtmlStringBuffer buffer) { //ヘッダは表示させないように修正 } };
として見ました。
結果として、onRendarは
public void onRender() { List<Map> articleTableList = new ArrayList<Map>(); for (Iterator iter = articles.iterator(); iter.hasNext();) { Article article = (Article) iter.next(); Table table = new Table("child"); table.addColumn(new Column("koumoku")); table.addColumn(new Column("atai")); List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Map<String, String> row = new HashMap<String, String>(); row.put("koumoku", "たいとる"); row.put("atai", article.getTitle()); list.add(row); row = new HashMap<String, String>(); row.put("koumoku", "名前"); row.put("atai", article.getName()); list.add(row); row = new HashMap<String, String>(); row.put("koumoku", "メッセージ"); row.put("atai", article.getTitle()); list.add(row); table.setRowList(list); HtmlStringBuffer hsb = new HtmlStringBuffer(); hsb.append(table.toString()); Map<String, Table> map = new HashMap<String, Table>(); map.put("child", table); articleTableList.add(map); } outerTable.setRowList(articleTableList); }
となりました。
まぁ行のMapを作る箇所はどうにかするとしても・・・
これだとどうなんでしょうね?そこそこきれいになりましたが、
削除用のボタンや、パスワードの入力などに不安が残ります。
なんというか列毎にはいろいろ出来るけど、
行毎にはあまりやさしくないというか・・・
ちょっと先行きが不安ですね。
(最終的にはTableを画面で分解して表示しそうなきがしますが・・・)
出来るだけ最後まで画面では$parentですむようにしていこうと思います。
Decoratorとか面白そうですが、これもColumnに対するものなので、どうしたもんですかねぇ。
column.setDecorator(new LinkDecorator(table, editLink, "id"));
としておくと、
リンクがこんな感じになってくれるのに・・・
http://localhost:8080/ClickBbs/bbsSimple.htm?actionLink=edit&value=10&pageNumber=0
actionLink=アクションリンク名&value=指定したIndex(*)&ページ番号
(*)これに関しては、一行分のオブジェクトの取得できる変数を指定する。
今回は、Article#getId