我有一个<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. 这是怎么引起的,我该如何解决?
我想在满足任何一个条件的情况下禁用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)
有什么建议吗?提前致谢.