J'ai joué avec les composants composites JSF 2.0 mais je ne comprends pas très bien ce que l'attribut require de la balise composite:attribute
doit faire. La documentation indique que l'attribut required est true si l'auteur de la page doit fournir une valeur pour cet attribut.L'attribut Composant Composant requis génère une exception dans Mojarra 2.0.3
J'ai interprété cela comme signifiant qu'une valeur doit être fournie pour tous les attributs composites: required=true
. J'ai également supposé qu'une chaîne vide est une valeur valide. Et voici comment cela a fonctionné dans Mojarra 2.0.2.
En utilisant ce simple bean géré:
@ManagedBean(name = "simpleMB")
@ViewScoped
public class SimpleManagedBean implements Serializable {
private static final long serialVersionUID = -1;
private String whatever;
... setter and getter
}
Et la pièce composite:
<composite:interface>
<composite:attribute name="value" required="true" />
</composite:interface>
<composite:implementation>
<h:outputText value="Value: '#{cc.attrs.value}'" />
</composite:implementation>
Ces balises ont travaillé dans Mojarra 2.0.2:
<foo:bar value="" />
<foo:bar value="#{simpleMB.whatever}" />
Cependant, quand je mis à jour à 2.0.3, seule la première étiquette fonctionne. La deuxième balise provoque ce message d'erreur:
/requiredAttribute.xhtml @20,42 <foo:bar> The following attribute(s) are
required, but no values have been supplied for them: value.
Cela fonctionne correctement lorsque j'ai défini la valeur false.
Ai-je mal interprété ce que l'attribut requis signifie? Quelqu'un peut-il clarifier quel comportement je devrais attendre?
Merci.
Salut, je viens de tomber sur ce même problème. Apparaît avec Mojarra 2.0.3. Se sent comme un bug? –