Domanda

Come posso ottenere l'intestazione Referer in Struts2? In questo momento sto usando una classe ActionSupport e non riesco a ottenere un oggetto ServletActionContext o implementare l'interfaccia ServletRequestAware? (Dov'è ServletRequestAware in Struts2? Quale jar?)

Sto cercando di impostare un reindirizzamento automatico al referer di una pagina, memorizzato in una variabile di sessione. Quando qualcuno richiede l'autenticazione OAuth, memorizzo il referer in sessione e quindi lo invio a Twitter. Quando fanno clic su Consenti, Twitter li invia al mio URL di callback OAuth. Lavoro lì (persistono token di accesso) e quindi vorrei inviarli al referente che ho memorizzato nella loro sessione.

Come sono sicuro che puoi dire, sono molto nuovo con Struts. Ho trascorso più di tre ore a leggere documenti Java, a cercare su Google e altrimenti a cercare di evitare l'ira contro di me il noob cringe

Grazie!

È stato utile?

Soluzione

È considerato "non freddo" fare riferimento a elementi HTTP nelle azioni, ma diventa necessario così ....

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

implementa l'interfaccia, crea una variabile membro HttpServletRequest e imposta la variabile membro sulla richiesta nel setter implementato sopra. Ora hai la richiesta e puoi fare il tuo request.getHeader (" referer ") .

Alcune persone usano anche il metodo statico org.apache.struts2.ServletActionContext.getRequest () per ottenere la richiesta. È considerata una cattiva forma perché può rendere più difficile il test unitario, ma lo vedo sempre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top