我有一个像这样的宏组件。
<listbox id="results">
<listitem id='listitem' self="@{each=d}">
<listcell label='@{d.column1}'/>
<listcell label='@{d.column2}'/>
<listcell label='@{d.column3}'/>
<listcell label='@{d.column4}'/>
</listitem>
</listbox>
我使用 BindingListModelList 设置集合模型,就像常规列表框一样。
列表框是渲染的,但只有 1 列,并显示适配器的 toString 方法。
final List<Students>students = ...........
results.setModel(new BindingListModelList<>(students,false));
然后展示 Student 类的 toString() 方法。
我试过这个语法
<listitem id='listitem' self="@{each=${arg.includer.adapters}}">
<listcell label='${arg.includer.adapters[self.columIndex].column1}'/>
<listcell label='${arg.includer.adapters[self.columIndex].column2}'/>
<listcell label='${arg.includer.adapters[self.columIndex].column3}'/>
<listcell label='${arg.includer.adapters[self.columIndex].column4}'/>
</listitem>
HTMLMacroComponent 类有一个 getAdapters 方法,它返回要显示的数据。
public class StudentDetail extends HtmlMacroComponent{
public List<Students>getAdapters(){
return adapters;
}
}
但我无法让它工作。当您使用 new Listbox() 创建列表框并设置不 itemRender 时,看到没有 itemRender。