我需要在表格中显示列表中包含的所有值。
例如:
class Person {
String name;
String age;
List<Rule> rules;
}
我期望的结果:
|name |age |rules
alex 22 administrator, user, etc..
其中管理员和用户属于 Rule.name 属性
有人知道怎么做吗?
最佳答案
您应该能够添加生成的列并根据需要格式化列表中的值。你可以找到一个例子 here ,只需向下滚动到5.16.5 生成的表格列
一章由于您没有发布任何代码,我不知道您是如何设置表格的。为了方便起见,我创建了一个带有 BeanItemContainer<Person>
的简单表格。并且我添加了一个“规则”生成列。有改进的余地,但你应该明白:
BeanItemContainer<Person> dataSource = new BeanItemContainer<Person>(Person.class);
table_1.setContainerDataSource(dataSource);
// create generated column and specify our "generator/formatter"
table_1.addGeneratedColumn("rules", new RuleGenerator());
dataSource.addAll(new ArrayList<Person>(){{add(new Person());}});
格式化器/生成器:
public class RuleGenerator implements Table.ColumnGenerator {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Label label = new Label();
StringBuilder labelContent = new StringBuilder();
for(Rule rule : ((Person) itemId).getRules()){
labelContent.append(rule.getName()).append(",");
}
label.setValue(labelContent.toString());
return label;
}
}
这是我得到的:
关于list - Vaadin:在表中显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521671/