terça-feira, 14 de junho de 2011

Obter dados de um parametro do web.xml

Estive com uma dificuldade, precisava fazer upload de um arquivo mas não queria informar o caminho absoluto no servidor, infelizmente ainda não consegui fazer funcionar isso... mas, na busca por uma solucão, acabei aprendendo outra coisa legal, pra quem já programou em .NET conhece bem a tal da web.config, um arquivo XML com milhoes de configuracoes, ta um pouco menos, mas voce pode adicionar varias coisas la e obter na aplicacao, seria um lugar bom pra guardar qualquer parametro do sistema que possa se alterar em uma eventual nova instalacao ou mudanca de servidor... chega do rolo, vamos ao codigo Java com Struts, aqui o arquivo se chama web.xml e costuma estar dentro do WEB-INF, podemos adicionar variaveis (parametros de contexto) com informacoes úteis, como no meu caso queria manter o caminho absoluto até o diretório da minha aplicacao. Olha a imagem abaixo, após a configuracao do tiles  tem um context-param (linhas 32->35), ali dentro fica os dados desse parametro (nome e valor) que eu adicionei.


Minha dificuldade foi conseguir obter esse valor na app, após várias tentativas e erros deu certo, muito simples por sinal:

ServletActionContext.getServletContext().getInitParameter("caminhoFisicoImgProdutos");


Bom, na imagem acima tem além da parte que obtém caminhoAbsoluto o upload do arquivo igual tutorial do helton, e tem tbm a atualizacao dos dados no banco, onde eh alterado o caminho (nome arquivo) da imagem...

Isso ai galera, até +.

Um comentário:

  1. Acabei encontrando uma forma de pegar o caminho absoluto no exemplo http://mmaiacupofcoffee.blogspot.com/2009/03/struts-2-como-fazer-upload.html

    ServletContext sContext = ServletActionContext.getServletContext();
    String diretorioFotos = sContext.getRealPath("/imgProdutos");

    ResponderExcluir