Le problème dans ton code, c'est que l'attribut attReadOnly est accédé au niveau du bean ClientFactory. De fait, la valeur retournée sera la même pour l'ensemble des éléments de la table.
Il est donc nécessaire de déporter cet attribut au niveau de l'objet itéré, i.e. de pouvoir écrire :
<h:inputText value="#{monClient.adresse}" disabled="#{monClient.attReadOnly}"/>
Une autre solution serait de passer à la méthode isAttReadOnly de ClientFactory le paramètre correspondant au client actuellement itéré. Mais c'est plus complexe, le langage EL étant peu flexible de ce côté là (à moins d'utiliser une librairie comme EL Functors ou JSF 2.0
).
Partager