J'ai un problème avec les paramètres transmis dans l'URL.Struts 2.0.14 Les paramètres GET ne sont pas codés en URL, est-ce un bug?
Disons que la demande est: /struts/MyAction.action?param=foo%40bar.com
Le champ d'action obtient le "PARAM" champ réglé sur "foo% 40bar.com", est que un bug ou j'attends trop de Struts? Mon intuition me dit que je devrais obtenir la valeur: "[email protected]", comme par exemple se passerait si je passais ce paramètre en tant que champ de formulaire POST. J'utilise la pile d'intercepteurs par défaut et ma classe d'action étend ActionSupport. Je reçois le comportement sur WebSphere6.1 & GlassFish2.1.
Merci
Salut Encore une fois,
Le problème a été causé par un bogue dans la mise en œuvre de proxy. Nous avons écrit un serveur proxy personnalisé devant l'application Web. Il encodait les paramètres d'URL pour la deuxième fois et c'est pourquoi dans Struts j'avais% 40 au lieu de @. Le bogue a été corrigé maintenant et les paramètres sont passés correctement.
Merci pour votre aide
Vous devriez utiliser des getters et des setters plutôt que d'exposer des champs en public. C'est juste une bonne pratique générale en Java. –
Avec les Struts, vous devez effectuer une validation dans une méthode de validation, le getter et le setter ne doivent rien faire d'autre que get/set, les contraintes de paramètres sont également traitées ailleurs ... Les classes sont minces. tel (et avec un refactoring IDE vraiment facile). En général, c'est une bonne idée, mais la façon dont je fais les actions semble assez abstraite sans les ajouter, ce qui améliore la lisibilité. OT juste FYI, hibernate peut même permettre la mise en place de champs privés (via la réécriture bytecode) parler d'exotiques! Je suis d'accord que get/set est la «meilleure pratique», mais ce n'est pas toujours le meilleur. – Quaternion
Salut, ce n'est pas vraiment une forme mais un lien vers une action dans un email généré. Le classpath semble être correct et nous n'avons pas de sortie inquiétante dans les logs. Je vais essayer le Struts 2.2.1 et voir si cela change quelque chose –