如何使用Map项类型填充Vaadin Grid

时间:2017-08-07 13:55:46

标签: java spring vaadin

我想用Map<String, Object>项填充我的Vaadin网格。 那是因为我从这样的数据库中得到了我的数据(可能是它的主要问题):

List<Map<String, Object>> result = jdbcTemplate.queryForList("select * from db", new Object[]{});

现在让我说我创建我的测试列表并用一些地图填充它:

List<Map<String, Object>> items = new ArrayList<>();
items.add(map);
items.add(map2);

我知道如何使用非动态数据模型,例如:

grid.addColumn(Person::getName).setCaption("Name");
grid.addColumn(Person::getAge).setCaption("Age");

但是如何创建我的Grid列,以便它将使用我的地图键? 我现在拥有的东西:

Grid<Map<String, Object>> grid = new Grid<>();

items.get(0).keySet().forEach(key ->
    grid.addColumn(c -> c.get(key)));

grid.setItems(items);

它给了我输出:

  

b2 / b3 / b1

期待:

  

a1 / a2 / a3

     

b1 / b2 / b3

我不知道如何在列表中的每个地图中找到我的项目。还有为什么它没有订单? 感谢每一个答案!

1 个答案:

答案 0 :(得分:1)

使用LinkedHashMap代替Map

LinkedHashMap保留插入顺序。