VRaptor acessar propriedade do web.xml

5 respostas
marcelomello

Olá pessoal,

Estou construindo uma classe genérica e percebi que preciso de uma propriedade do web.xml
Preciso do valor que está nessa propriedade

<context-param>
        <param-name>br.com.caelum.vraptor.packages</param-name>
        <param-value>pacotes.do.meu.contexto</param-value>
    </context-param>

Existe alguma forma mais direta que o VRaptor 3 faça acesso a essas propriedades?
Ou eu posso resolver isso através disso???

public class Teste extends HttpServlet {  
    public void init() {  
        String file = getInitParameter("arquivo-configuracao");  
    }  
}

Se por acaso alguém que tem isso de bate pronto e poça me passar agradeço tbém… :slight_smile:

Obrigado

5 Respostas

luiz_renato

marcelo,

Não sei como o VRaptor funciona , mas pra acessar o paramentro na sua servlet pelo service seria :

public class Teste extends HttpServlet { protected void service ( HttpServletRequest req , HttpServletResponse res) throws IOException, ServletException { PrintWriter out = response.getWriter(); out.println (this.getServletContext().getInitParameter("br.com.caelum.vraptor.packages") ); } }
No seu caso se o parametro for usado somente pela servlet use <init-param> entre a definição da servlet no web.xml.
Se for pra aplicação inteira seria o caso de usar um ServletContextListener pra ler o parametro e armazenar num atributo.

D

@marcelomello, tenta isso:

No construtor do seu controller recebe como parametro um HttpServlet;
@Resource
public class MeuController(){
	private final HttpServlet servlet;
	
	public MeuController(HttpServlet servlet){
		this.servlet = servlet;
	}
	
	public void minhaAction(){
		
		//aqui vc faz o que quizer com sua informação
		servlet.getServletContext("br.com.caelum.vraptor.packages");
	}
}
Lucas_Cavalcanti

na verdade vc pode receber o ServletContext no construtor e chamar context.getInitParameter(“nome”)

ou ainda receber o HttpServletRequest no construtor e fazer request.getServletContext().getInitParameter(“nome”)

marcelomello

Obrigado pessoal,

Consegui aqui seguindo a dica do Lucas.
Obrigado pelas respostas.

Abraço.

B

Muito bom! Consegui resolver meu problema também.
Obrigado!

Criado 24 de novembro de 2010
Ultima resposta 22 de ago. de 2012
Respostas 5
Participantes 5