Frage

Wie kann ich die Referer-Header unter Struts2 bekommen? Im Moment bin ich mit einem ActionSupport Klasse und ich kann nicht ein ServletActionContext Objekt zu erhalten oder implementieren die ServletRequestAware Schnittstelle scheinen? (Wo ist ServletRequestAware in Struts2? Welches Glas?)

Ich versuche, eine automatische Umleitung auf eine Seite Referer einzurichten, in einer Sitzungsvariablen gespeichert. Wenn jemand OAuth-Authentifizierung anfordert, speichere ich den Referer in der Sitzung und sie dann an Twitter senden. Wenn sie zulassen klicken, sendet twitter sie meinen OAuth-Rückruf-URL. Ich dort arbeiten (Zugriffstoken bestehen bleiben), und dann möchte sie den Referer senden ich in ihrer Sitzung gespeichert haben.

Wie ich bin sicher, man kann sagen, ich bin sehr neu für Struts. Ich habe verbrachte mehr als drei Stunden Java-Dokumentation zu lesen, googeln und ansonsten versuchen, Zorn gegen mich Noob zu vermeiden cringe

Danke!

War es hilfreich?

Lösung

Die als "uncool" HTTP Elemente in Aktionen zu verweisen, aber es wird notwendig, so ....

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);

implementieren die Schnittstelle, eine HttpServletRequest Membervariable erstellen und dann Ihre Membervariable auf die Anforderung in dem implementierten Setter oben. Jetzt haben Sie die Anfrage und Sie können Ihre request.getHeader("referer") tun.

Einige Leute benutzen auch die statische Methode org.apache.struts2.ServletActionContext.getRequest() die Anfrage zu bekommen. Seine als schlechte Form, weil es Unit-Tests erschweren kann, aber ich sehe es die ganze Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top