如何使用JSF EL表达式在param中迭代变量

时间:2013-01-14 20:52:15

标签: jsf-2 primefaces el

我有一个PrimeFaces <p:dataGrid>组件,其中包含可变数量的面板。每个面板包含许多派生组件。我在每个面板中都有一个删除按钮,允许删除。我还在dataGrid外面有一个添加按钮。我没有在按钮上使用immediate="true",而是想出了如何在每个面板中设置每个组件的必需属性。

例如:

required="#{empty param['vehicleGrid:0:btnDelete'] and empty param['btnAdd']}". 

对于dataGrid中的每个删除按钮和添加按钮,忽略组件验证。

如果dataGrid中有一个面板,但它只引用第一个面板,则此方法有效。我需要动态检查每个面板。也许我不需要从标记页面查看它,也许我需要用Java术语来看它,因为param是Map<String, String>

1 个答案:

答案 0 :(得分:0)

将删除按钮组件绑定到视图并改为使用UIComponent#getClientId()

<h:inputText ... required="#{empty param[deleteButton.clientId]}" />
...
<h:commandButton binding="#{deleteButton}" ... />

这样,将在参数映射中查找正确的客户端ID,然后无需迭代参数映射。