小编VCy*_*y_A的帖子

无法通过键获取 Map<Long, String> 的值

我有一个<p:dataTable>每行都有一个像这样的 inputText :

<p:dataTable ... rowIndexVar="row">
    <p:column>
        <p:inputText value="#{myBean.items[row + 1]}" />
    </p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

items属性是Map<Long, String>

private Map<Long, String> items = new HashMap<Long, String>();
Run Code Online (Sandbox Code Playgroud)

当我提交一些数据并手动遍历地图时,它显然有效:

Iterator itr = items.entrySet().iterator();
while (itr.hasNext()) {
    Map.Entry e = (Map.Entry) itr.next();
    System.out.println("key: " + e.getKey() + " " + "value: " + e.getValue());
}
Run Code Online (Sandbox Code Playgroud)

我得到:

键:1 值:item1
键:2 值:item2
键:3 值:item3
键:4 值:item4

但是,当我尝试通过键获取特定项目时

String item = items.get(1);
Run Code Online (Sandbox Code Playgroud)

然后我得到一个null. 根据地图的内容,我应该得到item1. 这是怎么引起的,我该如何解决?

java el hashmap primefaces jsf-2

6
推荐指数
1
解决办法
1万
查看次数

Primefaces/JSF - 根据两个条件禁用按钮

我想在满足任何一个条件的情况下禁用primefaces中的按钮.例如:

我有commandButton:

<p:commandButton value="Check"  actionListener="#{myBean.someMethod()}" 
                 disabled="#{myBean.contador1 eq 0} ">
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,我想检查另一个条件来禁用该按钮.

disabled="#{myBean.contador2 eq 100} ">
Run Code Online (Sandbox Code Playgroud)

如果我单独尝试其中一个,则按钮被禁用.但是,当我尝试加入这两个条件时,它们都不起作用.我试过了:

 disabled="#{myBean.contador1 eq 0} || #{myBean.contador2 eq 100} ">
 disabled="#{myBean.contador1 eq 0} or #{myBean.contador2 eq 100} ">
 disabled="#{myBean.contador1 eq 0} , #{myBean.contador2 eq 100} ">
 disabled="#{myBean.contador1 eq 0} #{myBean.contador2 eq 100} ">
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?提前致谢.

el primefaces jsf-2

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

el ×2

jsf-2 ×2

primefaces ×2

hashmap ×1

java ×1