J'ai un problème avec les valeurs des attributs d'un composant validateur. Apparemment, le validateur est créé lorsque je visite une page pour la première fois.Actualiser JSF validateur attributs sur rerender
S'il vous plaît voir mon code ci-dessous:
<h:inputText value="#{qsetting.value}" rendered="#{qsetting.dataType=='Double'}">
<mw:validateRange min="#{qsetting.minValue}" max="#{qsetting.maxValue}" />
</h:inputText>
Le composant est inputText par ajax, mais nouveau rendu apparemment, y compris la valeur affichée. Malheureusement, les valeurs qsetting.minValue et qsetting.maxValue ne sont pas actualisées, ce qui empêche mon validateur de fonctionner correctement.
Est-il possible de rafraîchir le validateur, pour vous assurer qu'il re-récupère ses attributs ou simplement créer une nouvelle instance de validateur? La classe de validateur elle-même est en train de mettre en œuvre "Validator, Serializable". En outre, j'utilise jsf1.2 avec facelets ...
Merci, Steven
Il serait utile si vous avez marqué la 'mw'.Je n'ai aucune idée de ce que c'est. Est-ce un composant personnalisé peut-être? –
Oui, c'est un validateur personnalisé. Rien de spécial là-dedans cependant, seulement 2 variables Double membre, à la fois avec un getter et un setter. Le problème est que les getters ne sont appelés que lorsque la page est construite. Donc, lors du redéclenchement, l'arborescence des composants existe et les setters du validateur ne sont pas appelés. Par conséquent, j'ai des valeurs incorrectes dans mon validateur, et je veux corriger cela en quelque sorte ... (n'a pas testé, mais je crois que vous obtiendriez les mêmes résultats avec une balise f: valiateLongRange) –