Это не будет работать, если #{data}
относится к итерируемой переменной итеративного компонента JSF, например <h:dataTable var>
.<f:attribute>
устанавливается во время построения представления JSF, а не во время визуализации представления JSF.Однако <h:dataTable var>
недоступен во время построения представления, он доступен только во время визуализации представления.
Если ваша среда поддерживает EL 2.2, вместо этого
<p:menuitem ... actionListener="#{customerProductsBean.getProductSetupData(data)}" />
с
public void getProductSetupData(Data data) {
// ...
}
Или, если ваша среда этого не делает, вместо этого сделайте
public void getProductSetupData(ActionEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
Data data = context.getApplication().evaluateExpressionGet(context, "#{data}", Data.class);
// ...
}