Oi amigos,
estou trabalhando com struts e filtro.
No filtro eu crio uma conexão e penduro na requisição conforme código abaixo:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
try {
Connection conexao = new ConnectionFactory().getConnection();
req.setAttribute("conexao", conexao);
System.out.println("pendurei na requisição...");
System.out.println(req.getAttribute("conexao"));
chain.doFilter(req, res);
System.out.println("Vou fechar a conexão...");
conexao.close();
} catch (SQLException e) {
throw new ServletException(e);
}
}
Agora preciso recuperar essa conexão na minha action. Veja o código abaixo:
public class AdicionaCompromissosAction {
private Compromisso compromisso;
private Connection conexao;
public Connection getConexao() {
return conexao;
}
public void setConexao(Connection conexao) {
this.conexao = conexao;
}
@Action(value = "adicionaCompromisso", results = { @Result(name = "ok", location = "/compromisso-adicionado.jsp") })
public String execute() {
new CompromissoDAO(conexao).adiciona(compromisso);
return "ok";
}
public Compromisso getCompromisso() {
return compromisso;
}
public void setCompromisso(Compromisso compromisso) {
this.compromisso = compromisso;
}
}
Achei que apenas criando um atributo de mesmo nome na Action, usando get e set seria suficiente para recuperar minha conexão, mas não foi. O atributo conexao vem com referência nula. Como faço para recuperar essa conexão na Action?