2010-09-30 4 views
2

J'ai une page JSF qui a un composant h:inputHidden et je définis une valeur codée en dur. J'ai placé les attributs id, name et value. Mais quand j'accède à la valeur du bean géré, j'obtiens null.Comment lire une valeur à partir d'un h: inputHidden dans le bean géré

J'ai également remarqué que, pendant l'exécution, le nom est en train de passer à un ID généré automatiquement.

Appréciez toute aide.

Répondre

5

Le comportement du <h:inputHidden> est le même que pour un composant <h:inputText> par exemple:

<h:inputHidden id="myHiddenField" value="#{myBean.myValue}"/> 

se référera à la propriété myValue de la fève myBean. Donc, vous devrez fournir à la fois getMyValue() et setMyValue(String) dans ce bean. Par conséquent, si vous modifiez la valeur de ce champ caché côté client (en utilisant Javascript), la nouvelle valeur sera mise à jour du côté du bean une fois le formulaire soumis.

En ce qui concerne l'ID, vous devez spécifier l'attribut id, sinon JSF en générera un pour vous (quelque chose comme j_id123 par exemple). Si vous spécifiez une valeur pour cet attribut, l'ID de la balise HTML sera celle que vous avez spécifiée, préfixée par votre ID de formulaire. Ainsi, dans l'exemple suivant:

<h:form id="myForm"> 
    <h:inputHidden id="myField" .../> 

la balise HTML <input> aura l'identifiant myForm:myField (notez le : utilisé comme séparateur de ids).

0

Vous pouvez utiliser ceci:

@ManagedBean(name="myBean") 
@SessionScoped 
public class MyBean implements Serializable { 

    String myValue= "I'm Hidden value!"; 

    public String getMyValue() { 
     return myValue; 
    } 

    public void setMyValue(String myValue) { 
     this.myValue = myValue; 
    } 

} 
Questions connexes