struts reset() n'est pas appelée avant le remplissage de la forme
J'ai eu un étrange (et probablement) mauvais comportement ici. J'ai essayé de mettre une case à cocher sur la page, et vous le savez: décoché les cases ne sont pas écrites à la demande (uniquement les cases cochées sont)
Ce que struts normalement offre est de remplacer:
@Override
public void reset(ActionMapping mapping, ServletRequest request)
pour réinitialiser toutes les cases à cocher pour "faux".
Mais dans mon cas, ce reset() n'est jamais appelé!
Quelqu'un a une idée?
Merci d'avance,
mana
Peut-être, c'est parce que l'url de la requête est à la recherche pour les jsp, pas le mappage de jambes de suspension de l'action(par exemple *.n'). Désolé pour le mauvais anglais.
OriginalL'auteur mana | 2010-02-16
Vous devez vous connecter pour publier un commentaire.
La réinitialisation méthode est automatiquement appelée par le framework Struts (votre observation sur L'Élite Gentleman réponse est bonne)... c'est si vous avez tout fait par le livre.
Vérifiez les points suivants:
classe ou autre chose?
réinitialiser la méthode dans une sous-classe de la
celui que vous êtes de ne pas obtenir de la méthode appelée et vous
utilisez-le pour votre action?
par contre, au lieu de laisser Struts
faire?
que votre action utilise que
la forme particulière en spécifiant le
name
attribut sur laaction
tag?Mon argent est sur le numéro 4.
Étrange... Peut-être que si vous préciser un peu plus de code avec votre question. Aussi,pensez-vous avoir un attribut nommé "attribut" sur l'action de la balise dans struts-config? Utilisez-vous <html:form> balises dans la page JSP pour récupérer le formulaire ou si vous utilisez autre chose (comme une plaine de vanille)?
OriginalL'auteur
La bonne signature de la méthode de remplacement est
OriginalL'auteur Azam Abdul Rahim
J'ai eu un problème similaire.
La solution était d'ajouter un attribut scope="request" dans l'action de la balise dans struts-config.xml
OriginalL'auteur Yasser
De réinitialisation n'est jamais appelé par défaut, il faut l'appeler par le biais de vos actions (si vous souhaitez réinitialiser votre formulaire),
sinon, sur votre page jsp, vous aurez
<html:reset />
et la balise de remplacer la méthode de réinitialisation deActionForm
. cela aide.dans ce cas, sur votre action, remplacer la
reset()
méthode, puis sur votre méthode ex: <br />public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { form.reset(); return mapping.findForward(..);}
....Ce que je veux dire, c'est que vous pouvez (transtypage), appeler lereset()
comme je l'ai fait dans l'exemple.le reset() n'a normalement pas besoin d'être appelé manuellement. Elle doit être appelée par le framework struts? Ou je me trompe?
vous avez raison, dans les conditions normales d'exploitation coditions Struts réinitialisation des appels automatiquement.
OriginalL'auteur Buhake Sindi
prototype de
reset()
méthode est la suivante:Si nous ne sommes pas à l'aide de
reset()
méthode lorsque que le temps nous essayons d'ouvrir notre application, puis les précédents valeurs seront à venir automatiquement.Si nous utilisons cette
reset()
méthode les valeurs précédentes seront réinitialisées en valeurs vides. Donc, en utilisant cereset()
méthode, nous pouvons éviter les valeurs précédentes.OriginalL'auteur sateesh