java - 可以在 apache wicket 表 (DataView) 中显示 Map<String, String>,而无需获取键列表

标签 java wicket dataview

我在 html 页面中创建了一个表格。

该表中有两列。

  1. wicket:id = “key_column”
  2. wicket:id = “value_column”

我将显示 map 数据(键和值)。

我是如何解决这个问题的..

TreeMap<String, String> map = new Treemap<~>();
map = getDataFormProvider();

List<String> keyList = new ArrayList<~>();

for (String key : map.keySet()) {
    keyList.add(key);
}

DataView<String> dataView = new DataView<~>("displayPanel", new ListDataProvider(keyList)) {
    @Override
    protected void populateItem(Item item) {
        String key = (String) item.getModelObject();
        item.add(new Label("key_column", key));
        item.add(new Label("value_column", map.get(key)));
    }
};

是否有可能直接将map显示为表格,而无需像上面那样获取keyList

最佳答案

不是真的。但是您可以减少传递条目列表的代码:

DataView<Entry<String, String>> dataView = new DataView<~>("displayPanel", new ListDataProvider(new ArrayList<Entry<String, String>(map.entrySet())) {
    @Override
    protected void populateItem(Item item) {
        Entry<String, String> entry = item.getModelObject();
        item.add(new Label("key_column", entry.getKey()));
        item.add(new Label("value_column", entry.getValue()));
    }
});

关于java - 可以在 apache wicket 表 (DataView) 中显示 Map<String, String>,而无需获取键列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030121/

相关文章:

java - 表单 : exception when injecting values 中的 Wicket 隐藏字段

java - 为什么 FormComponentPanels 中的共享模型不起作用?

javascript - UInt32、Int32、Float32的字节类型是什么?

c# - 基于多列的数据表去除重复行

java - session 属性未反射(reflect)在 JSP 中

java - 如何使用PowerMock模拟私有(private)方法进行测试?

java - 如何计算任何应用程序在我的 android 手机中打开的次数?

Java 区别 StdOut 与 System.out.println

java - 如何使用 Wicket 创建第一个启动向导? (数据库表创建等)

c# - 未从 DetailsView (ASPX/C#) 正确填充 SQL 语句