Ich habe ein Problem mit den Parametern in der URL übergeben.Struts 2.0.14 GET-Parameter sind nicht URLDecodiert, ist das ein Fehler?
Lassen Sie sagen, die Anforderung: /struts/MyAction.action?param=foo%40bar.com
Das Aktionsfeld der "param" bekommt Feld auf "foo% 40bar.com", ist, dass ein Bug oder ich erwarte zu viel von Struts?
Meine Intuition sagt mir, dass ich den Wert erhalten sollte: "[email protected]", wie es zum Beispiel passieren würde, wenn ich diesen Parameter als POST-Formularfeld übergeben würde.
Ich verwende den Standard-Interceptor-Stack und meine Action-Klasse erweitert ActionSupport. Ich bekomme das Verhalten auf WebSphere6.1 & GlassFish2.1.
Dank
Hallo Wieder
Das Problem wird durch einen Fehler in der Proxy-Implementierung verursacht wurde. Wir haben einen benutzerdefinierten Proxyserver geschrieben, der vor der Webanwendung stand. Es hat die URL-Parameter zum zweiten Mal codiert und deshalb hatte ich in Struts% 40 statt @. Fehler wurde behoben und Parameter werden korrekt übergeben.
Vielen Dank für Ihre Hilfe
Sie sollten Getter und Setter verwenden, anstatt die Felder als öffentlich verfügbar zu machen. Das ist nur eine allgemeine Best Practice in Java. –
Mit Struts sollten Sie Validierungen in einer Validierungsmethode durchführen, der Getter und Setter sollten nicht mehr tun als setzen, Parameter-Constraints werden auch anderswo gehandhabt ... Klassen in Actions sind dünn, also brauchen Sie nicht viel Isolation als so (und mit einem IDE Refactoring wirklich einfach). Im Allgemeinen ist es eine gute Idee, aber die Art, wie ich Aktionen mache, scheint ziemlich abstrakt zu sein, während das Hinzufügen von ihnen die Lesbarkeit verbessert. OT nur FYI, Hibernate kann sogar die Einstellung von privaten Feldern erlauben (über Bytecode Neuschreiben) über exotische sprechen! Ich stimme zu, dass Get/Set "Best Practice" ist, aber es ist nicht immer das Beste. – Quaternion
Hallo, das ist keine Form, sondern ein Link zu einer Aktion in einer generierten E-Mail. Der Klassenpfad scheint in Ordnung zu sein und wir erhalten keine beunruhigende Ausgabe in den Protokollen. Ich werde versuchen, die Struts 2.2.1 und sehen, ob es irgendetwas ändert –