【发布时间】:2013-11-24 00:55:06
【问题描述】:
我有一个<p:dataTable>,其中每一行都有一个这样的 inputText:
<p:dataTable ... rowIndexVar="row">
<p:column>
<p:inputText value="#{myBean.items[row + 1]}" />
</p:column>
</p:dataTable>
items 属性是 Map<Long, String>:
private Map<Long, String> items = new HashMap<Long, String>();
当我提交一些数据并手动迭代地图时,它显然有效:
Iterator itr = items.entrySet().iterator();
while (itr.hasNext()) {
Map.Entry e = (Map.Entry) itr.next();
System.out.println("key: " + e.getKey() + " " + "value: " + e.getValue());
}
我明白了:
键:1 值:item1 键:2 值:item2 键:3 值:item3 键:4 值:item4但是,当我尝试按键获取特定项目时
String item = items.get(1);
然后我得到一个null。根据地图的内容,我应该得到item1。这是如何引起的,我该如何解决?
【问题讨论】:
-
为什么不直接使用 p:dataTable 变量?
-
我也在使用 p:dataTable var...这个 var 有字符串,我不能在我的地图中使用它。我只需要知道如何将 var 行的内容放入 #value="" 或为什么 items.get(1) 不起作用...
标签: java jsf-2 primefaces hashmap el