Olá pessoal!
é o seguinte, estou listando o conteúdo de imagem
no diretório padrão de imagens do site e gerando um objeto imagem
para cada arquivo listado no diretório e colocando-os numa List.
aqui o método
/**
* Lista e retorna o conteúdo de um diretório.
* Este conteúdo no caso são imagens.
*
* Apenas será mostrado os tipos
* de arquivo baseados no método accept().
*
* @return lstDir
* @throws Exception
* @see accept
*/
public List listarImagemDiretorio() throws Exception{
File diretorio = new File(System.getProperty("user.dir")+"\\imagens\\repositorio");
String [] arquivos = diretorio.list();
List lstDir = new ArrayList();
System.out.println(arquivos.length);
for(int i=0;i<arquivos.length;i++){
if(accept(diretorio,arquivos[i])){
Imagem imagem = new Imagem();
imagem.setCodigo(new Integer(i+1));
imagem.setNomeImagem(arquivos[i]);
lstDir.add(imagem);
System.out.println("Nome Imagem em Tools.java:\n\t"+
imagem.getNomeImagem()+"\n" +
"\tCódigo: "+imagem.getCodigo()+"\n");
}else{
//throw new Exception("Tipo de Imagem incorreto.");
}
}
return lstDir;
}
/**
* Este método funciona como um filtro
* para os tipos de arquivo.
*
* Os tipos selecionados são do tipo:
* jpg, gif ou png.
*
* @param dir
* @param name
* @return boolean
*/
public boolean accept(File dir, String name) {
boolean ok = false;
if(name.endsWith(".jpg")){
ok = true;
}
else if(name.endsWith(".gif")){
ok = true;
}
else if(name.endsWith(".png")){
ok = true;
}
else if(name.endsWith(".bmp")){
ok = true;
}
return ok;
}
Aqui a Action
/**
*
*/
package com.cml.actions.imagens;
import java.util.List;
import com.cml.actions.ActionSuper;
import com.cml.dao.imagem.ImagemDAO;
import com.cml.to.imagem.Imagem;
import com.cml.utils.Tools;
/**
* @author juliocesar
*
*/
public class ImagemAction extends ActionSuper {
/**
*
*/
private static final long serialVersionUID = 1L;
private Imagem imagem = new Imagem();
private ImagemDAO imagemDAO;
private Tools tools = new Tools();
private List listaImgDiretorio;
/**
* Método Salvar
* @throws Exception
*/
public String inserir() throws Exception{
imagemDAO = new ImagemDAO();
imagemDAO.inserir(imagem);
return SUCCESS;
}
public String listarImgDir() throws Exception{
listaImgDiretorio = tools.listarImagemDiretorio();
return SUCCESS;
}
/**
* @return Returns the imagem.
*/
public Imagem getImagem() {
return imagem;
}
/**
* @param imagem The imagem to set.
*/
public void setImagem(Imagem imagem) {
this.imagem = imagem;
}
/**
* @return Returns the tools.
*/
public Tools getTools() {
return tools;
}
/**
* @param tools The tools to set.
*/
public void setTools(Tools tools) {
this.tools = tools;
}
/**
* @return Returns the listarDiretorio.
*/
public List getListarDiretorio() {
return listaImgDiretorio;
}
/**
* @param listarDiretorio The listarDiretorio to set.
*/
public void setListarDiretorio(List listarDiretorio) {
this.listaImgDiretorio = listarDiretorio;
}
}
Erro listado
[quote]
com.cml.utils.Tools.listarImagemDiretorio(Tools.java:207) com.cml.actions.imagens.ImagemAction.listarImgDir(ImagemAction.java:39) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:300) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.cml.interceptor.ErroInterceptor.intercept(ErroInterceptor.java:17) com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116) com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:229) com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) java.lang.Thread.run(Unknown Source) [/quote]
Não consigo achar qual o erro apesar de mostrar a linha do erro.
a classe com o método de listar funciona no consele lista e mostra os
valores do objeto Imagem.
Acredito que o erro seja ao jogar o valor da lista no outro List da Action
Será que pode fazer assim?
at++ valews