Exibir resultado de um Array... com um logic:iterate[Resolvido]

Tem como eu exibir um resultado… só linhas com um interate… ele vai pegando os valores da Array e exibindo na tela…

meu código ta assim…


<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-logic" prefix="logic"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>

<html:html>
<head><title>Respostas</title></head>
<body>

<logic:iterate id="resultado" name="finalCheckBox" type= "projeto.estudo.struts.study.BeanCheckBox">
    <bean:write name="resultado" property="nomeValorTipo" />
</logic:iterate>

<h1 style="text-align: center"><img src="img.jsp"></h1>

</body>
</html:html>

Aguardo ajuda e abs…

Cara, tem como vc se expressar melhor ?? dezendo qual o seu problema e a solução desejada.

O que quero é q os elementos q estão vindo de uma Array… sejam exibidos na tela… asssimm add um elementos em uma array… com um for… e joguei em um request… dai na tela jsp fiz um iterate… para exibir esse valores… na tela

Bom o problema é… esse erro…

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.String
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Ninguem pra me ajudar… :frowning:

Cara, vc tem que ter paciencia, pois isso aqui ajudamos nas horas vagas do nosso dia !!!

Teste com as tags , apenas pra ver se dá o mesmo erro:

 <%@ taglib uri="/tags/struts-html" prefix="html"%>
 <%@ taglib uri="/tags/struts-logic" prefix="logic"%>
 <%@ taglib uri="/tags/struts-bean" prefix="bean"%>

 <html:html>
 <head><title>Respostas</title></head>
 <body>
 
 <logic:iterate id="ck" name="Seu Array Setado no ACT após requisitar">
     <jsp:getProperty name="ck" property="nomeValorTipo"/>
 </logic:iterate>
 
 <h1 style="text-align: center"><img src="img.jsp"></h1>
 
 </body>
 </html:html>

Cara desculpa… vou ter mais paciencia…

então troquei e deu o mesmo erro…

Por favor, post seu código java que faz a busca no banco dados (DAO) e o que faz o request.setAttribute (ACT) para dar uma olhada mais a fundo, este erro está muito superficial.

Para exemplificar… na minha action eu to carregando um ArrayList com os valores na mão… não to pegando do banco de dados não… ai vo pra essa action ai…


public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
			
	CheckComboForm checkBoxForm = (CheckComboForm)form;
	
	String[] arrayStringResultado = checkBoxForm.getCheckBox();
	
	
	System.out.println("combo " + checkBoxForm.getComboBox()); 

		
	for(int i = 0; i < arrayStringResultado.length; i++ ){
		
	System.out.println(arrayStringResultado[i]);
			
	}
    
	request.setAttribute("finalComboBox",checkBoxForm.getComboBox());
	request.setAttribute("finalCheckBox", arrayStringResultado);

	return map.findForward("resposta");
		
	}

se eu do um System.out.println(arrayStringresultado); no final quando eu do um Debug… sai o resultado normal… mas na pagina jsp… naquele iterate q passei q não vai o resultado…

Da uma olhada…

Repare que o valor do “id” do iterate e igual ao valor do “name” do bean e o nome da variavel que fica no form esta dentro de “property”.

Ve se funciona.

Tente fazer assim:

1 - crie o método:

[code] // metodo para redirecionar a pagina
public void redireciona(String path) throws ServletException,IOException{
// redirecionando para o JSP desejado, atraves da interface RequestDispatcher
this.disp = getServletContext().getRequestDispatcher(path);

 this.disp.forward(this.request,this.response);

}[/code]

2 - crie um atributo:

String retorno = "";

3 - Abaixo de String[] arrayStringResultado = checkBoxForm.getCheckBox(); coloque:

retorno = "resposta.jsp";

4 - No lugar de return map.findForward(“resposta”); coloque

redireciona(retorno);

Entendi sua ideia … mas vai uma pergunta meia ignorante… onde eu crio esse metodo redirecional… :smiley:

1 - Crie uma classe ServletGenerico:

/**
 * Classe --> Servlet como camada de Controller.
 @author Joao Carlos and Miguel Willian
 @version 1.0
 */

package act;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletGenerico extends HttpServlet{
  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	protected RequestDispatcher   disp;
	protected HttpServletRequest  request;
	protected HttpServletResponse response;

  // metodo GET para formulario
  public void doGet (HttpServletRequest request, HttpServletResponse response){
    try {
		doPost(request,response);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
  }

  // metodo POST para formulario
  public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException{
    // inicializando
    this.request  = request;
    this.response = response;
    // chamando o método que será definido na classe filha...
    try {
		controle();
	} catch (ServletException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
  }

  // este método será redefinido pela classe filha...
  public void controle() throws ServletException,IOException, SQLException, Exception{
    // o conteudo será definido pelo usuario na classe filha...
  }

  // metodo para redirecionar a pagina
  public void redireciona(String path) throws ServletException,IOException{
    // redirecionando para o JSP desejado, atraves da interface RequestDispatcher
     this.disp = getServletContext().getRequestDispatcher(path);

     this.disp.forward(this.request,this.response);
  }


}

2 - na sua classe on faz o redireciona(“resposta.jsp”), coloque:

 Extends ServletGenerico 

Mas eu estou usando Struts… mesmo assim eu faço essa classe…

Vixe…verdade, tinha me esquecido!!! mas faz apenas pra teste então.

Cara era um erro bem bobo… mas tai a resposta para alguem q precisar blzas…

Só para obter os resultados checados do CheckBox…


<logic:iterate id="resultado" name="finalCheckBox" >
     <bean:write name="resultado" />
</logic:iterate>

Abssss cara e valeu pela ajuda…