Injetar uma Conexão no DAO usando Struts

Oi amigos,
Estou migrando meu sistema que usava apenas Servlet para struts e estou com o seguinte problema:
Antes de usar struts eu Tinha uma classe chamada FiltroConexao que implementava Filter. Lá eu criava minha conexão, pendurava na requisição e na minha classe adicionaCompromissoServlet eu usava o seguinte código:

//.... Connection conexao = (Connection) req.getAttribute("conexao"); // Acessa o banco CompromissoDAO dao = new CompromissoDAO(conexao); dao.insere(compromisso); //....

O problema é que agora uso struts e não mais servlets. Minha action ficou assim:

[code]public class AdicionaCompromissosAction {

private Compromisso compromisso;

@Action(value = “adicionaCompromisso”, results = { @Result(name = “ok”, location = “/compromisso-adicionado.jsp”) })
public String execute() {
//Aqui eu deveria pegar a conexão e injetá-la no DAO
new CompromissoDAO(???).adiciona(compromisso);
return “ok”;
}

public Compromisso getCompromisso() {
return compromisso;
}

public void setCompromisso(Compromisso compromisso) {
this.compromisso = compromisso;
}
}[/code]

Minha pergunta é: Como devo fazer agora para pegar minha conexão na requisição e injetá-la no DAO através do construtor???

Camarada, leia as regras do fórum.
Leia isto também http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/8

Criar um atributo Connection e seus respectivos getters e setters na action.

[quote=drsmachado]Camarada, leia as regras do fórum.
Leia isto também http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/8

Criar um atributo Connection e seus respectivos getters e setters na action.[/quote]

Criei um atributo Connection e seus respectivos getters e setters na action, mas dando NullPointerException.
Criei um Filtro, onde penduro a conexão na requisição e declarei no web.xml. O código segue abaixo:

[code]public class FiltroConexao implements Filter {
@Override
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…”);
chain.doFilter(req, res);
System.out.println(“Vou fechar a conexão…”);
conexao.close();
} catch (SQLException e) {
throw new ServletException(e);
}
}

@Override
public void destroy() {

}

@Override
public void init(FilterConfig arg0) throws ServletException {

}

}[/code]

Não consigo perceber onde estou errando.

Você pode criar um interceptor para isso, que além de Interceptor implemente ServletRequestAware, para que o struts tê de acesso ao request.

E usa as tags code, ninguém vai ler seu código se não usar.

[quote=von.juliano]Você pode criar um interceptor para isso, que além de Interceptor implemente ServletRequestAware, para que o struts tê de acesso ao request.

E usa as tags code, ninguém vai ler seu código se não usar.[/quote]

Obrigado pela dica das tags! Realmente faz toda diferença!
Usando Filtro e um atributo do tipo Connection com get e set na Action não seria suficiente para pegar essa conexão de volta na requisição?