Ajuda no iterate do JSP(STRUTS ! ! !)

3 respostas
L
To fazendo uma página simples de consulta e tá dando um erro que eu não congiso solucionar. Criei minha Action:
public class MetAction extends Action
{
   public ActionForward perform(ActionMapping mapping, ActionForm form,
          HttpServletRequest request ,HttpServletResponse response)
         {
      HttpSession session = request.getSession();
      ActionErrors erros = new ActionErrors();
      ResultSet rs = null ;
      Procura procura = (Procura)form;
      
      Conectar cone =  new Conectar();
        
     String sql = "SELECT h.id_projeto, c.cd_area, a.nm_projeto,  
b.nr_horas_previstas,  sum(extract(minutes from hora_termino - 
hora_inicio))/60 as horas FROM ts_time_sheet h join projeto a ON 
a.id_projeto =h.id_projeto left JOIN projeto_hora b ON a.id_projeto = 
b.id_projeto  JOIN centro_custo_global c ON a.id_centro_custo = 
c.id_centro_custo where c.cd_area in (14) GROUP BY h.id_projeto, 
c.cd_area, a.nm_projeto, b.nr_horas_previstas";

           
     if("/procura".equals(mapping.getPath()))
     {
        aki eu coloquei minha validaçao para execução do meu select
        de acordo com a solicitação da minha jsp

        ArrayList lista =  new ArrayList();
        Bean bean = new Bean(); //instancia da minha BEAN
	      
        try
        {
        cone.cone();   
        rs = cone.execSQL(sql);
	   
        while(rs.next())
        {
          bean.setId_projeto(rs.getInt("id_projeto"));
          bean.setCd_area(rs.getInt("cd_area"));
          bean.setNm_projeto(rs.getString("nm_projeto"));
          bean.setNr_horas_previstas(rs.getInt("nr_horas_previstas"));      
          bean.setHrs_usadas(rs.getString("horas"));
        lista.add(bean);
        }
       session.setAttribute("bean",bean);
	   
      cone.close();
      }
    catch(Exception e)
   {
   e.printStackTrace();
  MessageResources messages = (MessageResources)    servlet.getServletContext().getAttribute(Action.MESSAGES_KEY);
       	erros.add(ActionErrors.GLOBAL_ERROR, new ActionError("validacao.invalido", messages.getMessage("ou.cadastro")));
	  	System.out.println(e.toString());
       	return mapping.findForward("falha"); 
	  }
	  return mapping.findForward("ok"); 
     }
     return mapping.findForward("falha");  
	}
}
Esta é a minha classe PROCURA extendendo a FORM
public class Procura extends ActionForm
{
    private String projeto;
    private String area;

   * getters and setters *

   metodo validate
minha bean
public class Bean 
{
	private int id_projeto;
	private int cd_area;
	private String nm_projeto;
	private int nr_horas_previstas;
	private String hrs_usadas;

* getters and setters *

e a minha JSP !
[code<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>


Teste


























Projeto:
Área:
::Procurar::






















[/code]

Agora qnd eu executo ele, da este erro
Must specify type attribute if name is specified

Alguem poderia me ajudar..??
E o seguinte, tenho duvidas, no iterate.....

obrigado
espero me ajudarem..

3 Respostas

J

Cara, eu não sou nenhum craque mas vou tentar te ajudar…

No logic:iterate use sempre o mesmo nome, assim vc evita confusões sobre o que é name e o que é id
por exemplo:

&lt;logic:iterate name="bean" id="bean" &gt;

Porém o problema está no seu <logic:present>, é preciso usar da seguinte maneira

&lt;logic:present name="nomeDoBean"&gt;, sem contar que vc testa o <logic:present…> várias vezes, faça isso apenas uma vez antes da table.

Acho que é isso. Falow

qualquer dúvida veja a documentação no site
http://struts.apache.org/userGuide/struts-logic.html

D

troque <html:form action="/procura" name=“lista”> por <html:form action="/procura">

C

Olá

Acontece que você preenche uma lista no seu Action, mas o que você
está mandando é o bean. Você deve mandar é a lista para a sessão.

Espero tê-lo ajudado. :smiley:

Até mais.
Fabrício Luis

...
        while(rs.next())
        {
          bean.setId_projeto(rs.getInt("id_projeto"));
          bean.setCd_area(rs.getInt("cd_area"));
          bean.setNm_projeto(rs.getString("nm_projeto"));
          bean.setNr_horas_previstas(rs.getInt("nr_horas_previstas"));      
          bean.setHrs_usadas(rs.getString("horas"));
        lista.add(bean);
        }
       session.setAttribute("bean",bean);
...
session.setAttribute("bean",lista);
Criado 1 de dezembro de 2004
Ultima resposta 4 de dez. de 2004
Respostas 3
Participantes 4