Duvida com parametro

Olá pessoal… queria saber como passo um String[] como parametro para o iReport. Tentei fazer usando for mas não deu certo =/
Assim:

 Map parametros = new HashMap();    
 for(int i=0; i < vlParametro.length; i++)    
 {       
       parametros.put("programa", vlParametro[i]);  
       parametros.put("situacao", vlParametro[i]);  
               
   }  

Ah! Obtenho o string assim:

String[] vlParametro = request.getParameterValues("clientes");  

Alguém pode me ajudar?

vc deve passar a string

[code]String [] y = new String…;

String [] x = y;[/code]

isso pq ela espera um array e não uma string, o for soh daria se esperasse String e nao array

oi jjose, e eu não tou passando a string? se é que sua resposta fala pra q eu passe a string…

mas ta dando qual erro? pode colocar?

Opa, o erro que tá dando é que não aparece a informação correta quando gera os relatorios… tipo… eu consigo pegar os parametros certos, mas quando passo eles… gera a informação errada. Já testei nos relatorios [forçando valores, só pra ver se vai] e dá certo sim. Ai qndo passo o string [dentro do for] como parametro, ele só gera informação errada… vou colocar o código aqui…

    package estudo;  
    
   import java.io.IOException;  
   import java.sql.Connection;  
   import java.sql.DriverManager;  
   import java.sql.SQLException;  
   import java.util.HashMap;  
   import java.util.Map;  
   import javax.servlet.ServletContext;  
   import javax.servlet.ServletException;  
   import javax.servlet.ServletOutputStream;  
   import javax.servlet.http.HttpServlet;  
   import javax.servlet.http.HttpServletRequest;  
   import javax.servlet.http.HttpServletResponse;  
   import net.sf.jasperreports.engine.JRException;  
   import net.sf.jasperreports.engine.JasperReport;  
   import net.sf.jasperreports.engine.JasperRunManager;  
   import net.sf.jasperreports.engine.design.JRJdtCompiler;  
   import net.sf.jasperreports.engine.design.JasperDesign;  
     
   public class geraRelatorio extends HttpServlet{  
     
       private static Connection getConnection( ) throws ClassNotFoundException, SQLException{  
           //faço a conexão com o banco.  
           }  
         
       
       public void doPost (HttpServletRequest request, HttpServletResponse response)  
               throws IOException, ServletException {  
           doGet(request, response);  
       }  
         
         
       public void doGet(HttpServletRequest request, HttpServletResponse response)    
       throws IOException, ServletException  {    
                
            String[] vlParametro = request.getParameterValues("clientes");    
              
                       
          // obtém a conexão com o banco de dados    
            Connection con = null;   
            try {    
                Class.forName("oracle.jdbc.driver.OracleDriver");    
                con = getConnection();   
            } catch (Exception e) {    
                System.out.println("Erro ao obter conexao via DriverManager: " + e.getMessage());    
            }    
                
           // gera o relatório    
            ServletContext context = getServletContext();  
             
             
              
              
            byte[] bytes = null;    
            try {    
                    
                  
               // carrega os arquivos jasper    
   //             JasperReport compiledReport = (JasperReport)JRLoader.loadObject(    
   //                     context.getRealPath("\web\relatorioNomeAlunos.jasper"));    
                    
                java.io.File jrxmlFile = new java.io.File("F:\Documents and Settings\Samara\Meus documentos\CódigoNTI\TestePRPG\web\TesteOra.jrxml");  
                JasperDesign design = net.sf.jasperreports.engine.xml.JRXmlLoader.load(jrxmlFile);  
                JRJdtCompiler comp = new JRJdtCompiler();  
                JasperReport compiledReport = comp.compileReport(design);  
                  
                                
                // parâmetros, se houverem    
                Map parametros = new HashMap();    
                for(int i=0; i < vlParametro.length; i++){  
                   parametros.put("programa", vlParametro[i]);   
                   parametros.put("situacao", vlParametro[i]);   
                }  
                // direciona a saída do relatório para um stream    
                bytes = JasperRunManager.runReportToPdf(compiledReport,parametros,con);    
            } catch (JRException e) {    
                e.printStackTrace();    
            }    
            if (bytes != null && bytes.length > 0) {    
                // envia o relatório em formato PDF para o browser    
                response.setContentType("application/pdf");    
                   
                response.setContentLength(bytes.length);    
                ServletOutputStream ouputStream = response.getOutputStream();    
                ouputStream.write(bytes, 0, bytes.length);    
                ouputStream.flush();    
                ouputStream.close();    
            }  
   }  
   }  

Ele gera um relatorio que num deve gerar… eu fiz o teste do for pra aparecer ele impresso aqui e apareceu assim:

Programa: 22 Programa:2
Situacao: 22 Situacao: 2

E deveria ser assim, pra dar certo:

Programa: 22
Situacao: 2

Acho que você queria fazer algo assim:

parametros.put("programa", vlParametro[0]);         
parametros.put("situacao", vlParametro[1]);

Kramba… deu certo… nem acredito…
Valeu pessoal!

Ele esta gerando apenas a ultima ?!

              for(int i=0; i < vlParametro.length; i++){    
                 parametros.put("programa", vlParametro[i]);     
                 parametros.put("situacao", vlParametro[i]);     
              }    

Não, na sua lógica, você fala que o valor do programa é o mesmo da situação pois eles pegam os mesmos valores do vlParametro


 for(int i=0; i < vlParametro.length; i++){      
    parametros.put("programa", vlParametro[i]);       
    parametros.put("situacao", vlParametro[i]);       
 }