Pergunta

Como posso obter o cabeçalho Referer sob Struts2? Agora eu estou usando uma classe ActionSupport e eu não consigo obter um objeto ServletActionContext ou implementar a interface ServletRequestAware? (Onde está ServletRequestAware em Struts2 qual o jar?)

Eu estou tentando configurar um redirecionamento automático para referer de uma página, armazenado em uma variável de sessão. Quando alguém solicita autenticação OAuth, eu armazenar o referer em sessão e, em seguida, enviá-los para o twitter. Quando eles clique em permitir, twitter envia-los para o meu OAuth callback url. Eu faço trabalho lá (persistem token de acesso) e, em seguida, gostaria de enviá-los para o referer eu armazenado em sua sessão.

Como eu tenho certeza que você pode dizer, eu sou muito novo para Struts. Eu tinha gasto mais de três horas lendo docs Java, pesquisando e de outra forma a tentar evitar a ira contra mim noob cringe

Obrigado!

Foi útil?

Solução

Sua considerado "chato" para elementos de HTTP de referência em ações, mas torna-se tão necessário ....

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

implementar a interface, criar uma variável de membro HttpServletRequest e defina seu variável de membro para a solicitação na setter implementado acima. Agora você tem o pedido e você pode fazer sua request.getHeader("referer").

Algumas pessoas também usam o método org.apache.struts2.ServletActionContext.getRequest() estática para obter o pedido. Sua forma ruim considerado porque pode fazer a unidade de teste mais difícil, mas eu vejo isso o tempo todo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top