2017-10-19 15 views
0

Quelqu'un peut-il expliquer pourquoi h:inputText doit avoir required="true" lors de la définition de la propriété dans le contrôleur et de la mise à jour avec ajax (voir l'exemple ci-dessous)?JSF inputText lit la valeur uniquement avec required = "true"

ne fonctionne pas:

<h:inputText id="textFieldId" value="#{model.itemValue}"> 

Travaux:

<h:inputText id="textFieldId" value="#{model.itemValue}" required="true"> 

Action:

<p:commandLink value="edit"> 
    <p:ajax event="click" listener="#{controller.edit(item)}" process="@this" update="@form"/> 
</p:commandLink> 

idée est derrière que je veux appuyer sur le bouton pour le point et être en mesure de modifier de manière J'ai besoin de propager cet élément à inputText.

Je ne vois aucune raison pour avoir requis la valeur true.

Merci

+1

'p: commandLink' est déjà ajax activé ... Pas besoin de la balise' p: ajax' dedans !!! Et en utilisant 'process =" ceci "' empêche l'entrée d'être 'ignorée', alors créez un [mcve] pour montrer l'intention réelle – Kukeltje

+0

En fait, votre proposition a résolu le problème. Supprimé ajax et ajouté au lien de commande en tant qu'action. Je vous remercie – Smolda

Répondre

1

Les PrimeFaces p:commandLink est par défaut déjà ajax activé, donc il n'y a pas besoin d'imbriquer un tag p:ajax à l'intérieur.

<p:commandLink value="edit" actionListener="#{controller.edit(item)}" 
    process="@this" update="@form"/> 

Mais gardez à l'esprit que si vous ajoutez un process="@this", l'entrée n'est pas traitée sur le serveur, juste le commandLink. Si le champ 'item' est passé correctement dans ce cas, cela ne me semble pas clair.