Hoje, vou postar aqui um codigo que no minimo pode ser engracado.E interessante do ponto de vista das funcoes que sao utilizadas no php para manipulacao de arquivos e diretorios.Tudo isso aconteceu porque em um servidor que hospedo um site, alguns arquivos sao gerados com o usuario do apache... o famoso www-data!Por alguns arquivos serem gerados com www-data e com permissao de leitura e gravacao apenas para o proprio www-data, eu nao conseguia fazer nem um backup do meu projeto por causa destes arquivos os quais eu nao possuia permissao com meu usuario.Ja estava ficando desesperado ate que pensei o que era o mais obvio! Basta criar um script e acessar pelo browser e o usuario www-data estara em acao =PEntao a solucao foi executar este script que por sua vez altera a permissao dos arquivos e diretorios recursivamente (e apenas quando o arquivo estiver sob o poder do www-data!!!!).Talvez alguem possa ate passar por isso ou ter uma solucao bem mais inteligente pois a minha acho que esta bem estranha. Caso alguem estiver lendo este post e tiver alguma ideia que me ajude a fazer isso de forma melhor, por favor! nao hesite em deixar um comentario...Agora chega de lero lero e vamos ao codigo:/** funcao que apenas faz a chamada recursiva. * criei so para modularizar a chamada que e * feita em 2 lugares diferentes */private function recur($path) { $dir = scandir($path); for( $i=2; $i < count($dir); $i++) { $this->salvaodia($path . '/' . $dir[$i]); }}/** * esta e a funcao que salvou o dia! * portanto... para deixar o codigo um pouco mais divertido * vou manter o nome salva o dia! afinal... * essa funcaozinha merece o meu respeito */private function salvaodia($path) { // path eh o caminho raiz a partir do qual quero // sair procurando e mudando permissao $info = stat($path); // se for o userdata(cada server tera um diferente =/ ) if ($info[4] == 43234) { chmod($path, 0777); // nao facam isso fora de casa if (is_dir($path)) { $this->recur($path); } } else { if (is_dir($path)) { $this->recur($path); } }}/** e aqui fazendo a chamada da salvacao */public function salvacao() { $path = 'foo/bar/fubah'; $this->salvaodia($path); echo 'salvou o dia'; exit();}Com o codigo acima podemos ver algumas funcoes interessantes para manipular os arquivos e diretorios que sao elas:stat: retorna um conjunto de informacoes sobre um arquivo/diretorioscandir: recupera a lista de arquivos dentro do diretorio informadochmod: muda a permissao do diretorio segundo a configuracao rwx-rwx-rwx onde (r=read, w=write, x=execute). Cada grupo de permissoes dessas estao relacionadas ao dono, grupo e outros (UGO - user, group, owner).is_dir: apenas indica se o arquivo corrente e um diretorio. Bizarro!Em primeiro lugar, este post eu criei com o principal intuito de documencao para que eu nao caia mais na mesma armadilha, e se cair, ja sei onde esta a solucao mastigada. =PPalavras-chave: EL, Expression-Language, Spring-MVC, projeto criado com Maven archetype maven-archetype-webapp.Bom, iniciei um projeto utilizando Spring-MVC. Criei um projeto web com o archetype de projeto web via Maven.Criei uma JSP conforme abaixo:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>This page lists all available products:<br><c:forEach items="${products}"