ウィケットを使用してテーブルのリストを表示しています。テーブルの数と各テーブルの行の数はどちらも動的です。
私はそれをシンプルに保ち、それぞれにRepeatingViewを使用してネストしようとしていますが、wicketは次のように述べています。
java.lang.IllegalArgumentException:ID'table'の子はすでに存在します
これが私のJavaです:
RepeatingView view = new RepeatingView("listoftables");
for (CCSubscription sub: getCustomer().getSubscriptions()) {
//resource balance table
ResourceBalance[] resBals = sub.getResourceBalances();
if(resBals!=null && resBals.length>0) {
ListView<ResourceBalance> resBalTable = new ListView<ResourceBalance>("table", Arrays.asList(resBals)) {
@Override
protected void populateItem(ListItem<ResourceBalance> item) {
ResourceBalance bal = item.getModelObject();
item.add(new Label("resource", bal.getResource().getName()));
item.add(new Label("balance", bal.getBalance()));
}
};
view.add(resBalTable);
} //end if sub has non-null resource balance
} //end loop through subscriptions
add(view);
そして私のhtmlは:
<ul>
<li wicket:id="listoftables">
<fieldset>
<legend><b>Resource Balances</b>
</legend>
<table class="dataview" style="width:50%">
<thead>
<tr class="headers">
<th>Resource</th>
<th>Balance</th>
</tr>
</thead>
<tr wicket:id="table">
<td>
<span wicket:id="resource"></span>
</td>
<td>
<span wicket:id="balance"></span>
</td>
</tr>
</table>
</fieldset>
<br/>
私はおそらくこれを間違った方法で行っていることを認めますが、正しい方法がどうあるべきかわかりません。
誰かが助けてくれることを願っています!?