Java IO - Retornar várias imagens do Blob para o .JSP

Como faço para imprimir na tela as imagens pegas de um Blob, vindas como Bytes e convertidas para InputStream e jogadas posteriormente num array… Aconte q só está imprimindo o um regristro do banco… Estranho não? Pois estou acessando o array abaixo, veja:

/** * @return the inputStream */ public InputStream getInputStream() { //esse método é //chamado via getInputStream InputStream is = null; for (int i = 0; i < arrayDeInputStreams.length; i++){ if (arrayDeInputStreams[i] != null){ is = arrayDeInputStreams[i]; } } return is; }

struts.xml (Struts2)

<action name="verImagem" class="br.com.editorasaraiva.repositoriodigital.action.GaleriaImagemAction" method="getJSON"> <result type="stream" /> </action>

Método q pega os registros da base de dados e adiciona no array
Classe responsável pelo Upload das imagens:

[code] @SuppressWarnings(“serial”)
public class UploadImagemAction extends ActionSupport{

//atributos    
	
private int idPessoa; //parâmetro quando for fazer insert

private File imagemDoUsuario1;
private File imagemDoUsuario2;
private File imagemDoUsuario3;

private String imagemDoUsuario1ContentType;
private String imagemDoUsuario2ContentType;
private String imagemDoUsuario3ContentType;

private PessoaImagem pessoaImagem1 = new PessoaImagem();
private PessoaImagem pessoaImagem2 = new PessoaImagem(); 
private PessoaImagem pessoaImagem3 = new PessoaImagem();
    
private PessoaImagemDAO pessoaImagemDAO = new PessoaImagemDAO();
    	 
//private String imagemDoUsuarioFileName;
           
private static final String TIPOS_ACEITOS = "jpeg|png|gif|";	

/**
 * Método Action - Responsável por fazer o importe das imagens
 * @return SUCCESS
 * @return INPUT
 * @throws IOException
 * @throws SizeLimitExceededException
 * */
@Override
public String execute() throws IOException, SizeLimitExceededException{  		
	String formatoImagem1 = imagemDoUsuario1ContentType;
	String formatoImagem2 = imagemDoUsuario2ContentType;
	String formatoImagem3 = imagemDoUsuario3ContentType;		    
	for (int i = 1; i < 4; i++) {
		String imagemDoUsuario = "imagemDoUsuario";
		String imagem = imagemDoUsuario + i;		
		if(imagem.equals("imagemDoUsuario1")){
			if (imagemDoUsuario1 != null){
		    	if (!formatoImagem1.startsWith("image")){
		    		System.out.println("O campo (Imagem 1) é nulo!");
		    	}else{
		    		if((!TIPOS_ACEITOS.contains(formatoImagem1.substring(6, formatoImagem1.length())))){
		    			throw new IllegalArgumentException(	"O formato do arquivo (Imagem 1) é inválido! Não é uma imagem aceita!");
		    		}
		    		int j = 2 * 1000000; //conversão de 2 MB (Mega Bytes) em Bytes
					if (imagemDoUsuario1.length() >= j)	{ 
						throw new SizeLimitExceededException("A (Imagem 1) anexada ultrapassa o tamanho máximo suportado pelo Apache FileUpload que é " + j + "MB (Mega Bytes)");
					}
				}		    	 
		    }
		}			
		if(imagem.equals("imagemDoUsuario2")){
			if (imagemDoUsuario2 != null){
				if (!formatoImagem2.startsWith("image")){
		    		System.out.println("O campo (Imagem 2) é nulo!");
		    	}else{
		    		if((!TIPOS_ACEITOS.contains(formatoImagem2.substring(6, formatoImagem2.length())))){
		    			throw new IllegalArgumentException(	"O formato do arquivo (Imagem 2) é inválido! Não é uma imagem aceita!");
		    		}
		    		int j = 2 * 1000000; //conversão de 2 MB (Mega Bytes) em Bytes
					if (imagemDoUsuario2.length() >= j){ 
						throw new SizeLimitExceededException("A (Imagem 2) anexada ultrapassa o tamanho máximo suportado pelo Apache FileUpload que é " + j + "MB (Mega Bytes)");
					}
				}				    	 
		    	
		    }
		}			
		if(imagem.equals("imagemDoUsuario3")){
			if (imagemDoUsuario3 != null){
				if (!formatoImagem3.startsWith("image")){
		    		System.out.println("O campo (Imagem 3) é nulo!");
		    	}else{
		    		if((!TIPOS_ACEITOS.contains(formatoImagem3.substring(6, formatoImagem3.length())))){
		    			throw new IllegalArgumentException(	"O formato do arquivo (Imagem 3) é inválido! Não é uma imagem aceita!");
		    		}
		    		int j = 2 * 1000000; //conversão de 2 MB (Mega Bytes) em Bytes
					if (imagemDoUsuario3.length() >= j){ 
						throw new SizeLimitExceededException("A (Imagem 3) anexada ultrapassa o tamanho máximo suportado pelo Apache FileUpload que é " + j + "MB (Mega Bytes)");
					}
				}			    	 
		    }
		}			
		if (i == 3) {
			if (imagemDoUsuario1 == null && imagemDoUsuario2 == null && imagemDoUsuario3 == null){  
				System.out.println("Tela carregada. Todos os campos estão nulos.");
				return INPUT; 
			}
			else{
				//imagem 1
				if(imagemDoUsuario1.exists()){
				    InputStream entrada1 = new FileInputStream(imagemDoUsuario1);    
				   
				    OutputStream saida1 = new ByteArrayOutputStream();    
					    
				    byte[] buffer1 = new byte[(int)imagemDoUsuario1.length()]; 
					int bytesLidos1 = -1;  
					
					while ((bytesLidos1 = entrada1.read(buffer1, 0, buffer1.length)) != -1){  
					      saida1.write(buffer1, 0, bytesLidos1);  
					}  
					
					saida1.flush();  
					saida1.close();  
					entrada1.close();  
					    
					buffer1 = ((ByteArrayOutputStream) saida1).toByteArray();  
					
					pessoaImagem1.setImagem(buffer1);    
								
					pessoaImagemDAO.salvarImagem(pessoaImagem1, idPessoa);  
				}
				//imagem 2
				if(imagemDoUsuario2.exists()){
				    InputStream entrada2 = new FileInputStream(imagemDoUsuario2);    
				   
				    OutputStream saida2 = new ByteArrayOutputStream();    
					    
				    byte[] buffer2 = new byte[(int)imagemDoUsuario2.length()]; 
					int bytesLidos2 = -1;  
					
					while ((bytesLidos2 = entrada2.read(buffer2, 0, buffer2.length)) != -1){  
					      saida2.write(buffer2, 0, bytesLidos2);  
					}  
					
					saida2.flush();  
					saida2.close();  
					entrada2.close();  
					    
					buffer2 = ((ByteArrayOutputStream) saida2).toByteArray();  
					
					pessoaImagem2.setImagem(buffer2);    
						
					pessoaImagemDAO.salvarImagem(pessoaImagem2, idPessoa);  
				}		
				//imagem 3
				if(imagemDoUsuario3.exists()){
				    InputStream entrada3 = new FileInputStream(imagemDoUsuario3);    
				   
				    OutputStream saida3 = new ByteArrayOutputStream();    
					    
				    byte[] buffer3 = new byte[(int)imagemDoUsuario3.length()]; 
					int bytesLidos3 = -1;  
					
					while ((bytesLidos3 = entrada3.read(buffer3, 0, buffer3.length)) != -1){  
					      saida3.write(buffer3, 0, bytesLidos3);  
					}  
					
					saida3.flush();  
					saida3.close();  
					entrada3.close();  
					    
					buffer3 = ((ByteArrayOutputStream) saida3).toByteArray();  
					
					pessoaImagem3.setImagem(buffer3);    
					
					pessoaImagemDAO.salvarImagem(pessoaImagem3, idPessoa);  
				}
			}
		}
	}
	return SUCCESS;  	

//get e set
}[/code]