View: varios Iterators. como fazer?

fala ae pessoal…
agora q acabaram ferias, carnval, viagens e tudo mais… to de volta a rotina de sempre…
entao… la vai minha duvida…

é na camada de View…
to fazendo tipo de um sistema de comentarios…
a pessoa, da seu nome, o assunto e escreve o comentario… tudo isso vai do DB junto com data e hora q o cara enviou…

depois quero exibir tudo isso numa unica pagina… parece simples… E É! eu q sou ignorante e to a 2 meses sem programar q nao to conseguindo! :???:

na hora de exibir na página eu to usando as Tags do WEBWORk (framework nao vai fazer importancia agora, pq acretido q todas as frameworks MVC descentes tem tags de Iterators)

entao… na camada de Model, tenho métodos q retornam um Collections com o nome de todos q comentaram, tenho Collection dos comentarios e por aí vai…

preciso fazer assim… como se fosse relatorio:

programanticamente falando eu faria assim:

if(num_comentarios > 0)
{
    for(int i =0 ; i<=num_comentarios; i++)
    {
         out.println("<br>Nome: " + visitante.getNomes(0).get(i));
         out.println("<br>Assunto: " + comentario.getAssuntos(0).get(i));
         out.println("<br>Comentario: " + comentario.getComentarios(0).get(i));
     }
}

onde visitante.getNomes() e comentarios.getAssuntos() e comentarios.getComentarios() são Collections…

até aí blz…
massssss… o problema começa qdo tenho q usar as tags do WebWork pra fazer esse mesmo efeito…

outra coisa… essa solução q eu eu dei é a melhor forma? ou tem um jeito melhor? Lógicamente falando.

alguem pode me ajudar?

abraços!

badawi, tu ta retornando uma collection de objetos User?? Eu faria da seguinte forma…

[code]public class Usuario {

private String nome;
private String assunto;
private String comentario;

// getters e setters
}[/code]

ai retornaria uma collection preenchida de users, com o resto dos dados encapsulados

nao… nao…

o q eu to retornando é uma collection de Strings dos nomes… visitante.getNomes()
aí com o método get() do getNomes() eu pego o indice desejado… colocando isso dentro de um laço for, eu pego todos…

e tem outra coisa…
o assunto e o comentario ta dentro do objeto Comentario…

public class Visitante {
   String nome;
   String sobrenome;
   String username;
   String password;
   
   //getters e setters

}

public class Visitante {
    String assunto;
    String comentario;
   
    //getters e setters
}

obs: no banco de dados ta gravado mais ou menos da mesma forma… em tabelas diferentes… (tblVisitante e tblComentario)

na camada de Model, eu fiz os getNomes(), get Assunto(), getComentario() q sao Collection q retornam todos os nomes, assuntos e comentarios…

acho q nesse ponto ta erado… precisaria em 1 SELECT pegar o primeiro nome, o assunto correspondendo ao nome e o comentarios correspondente ao assunto… e colocar isso dentro de umna collection… mas ia dar varias colunas e nai ia dar certo…

vc acha q essa estrutura de objetos ou do banco de dados ta errada?

e mais uma perguntinha… pra sair como tipo relatório (nome, assunto e comentario… nome assunto e comentario…), como que eu faço isso na View do WebWork ???

abraços e valeu ae

Opa…

usando as Tags do Struts ficaria assim:

<logic:iterate name="Form" property="Usuarios" id="users">
  <logic:iterate name="users" property="comments" id="comments">
     <bean:write name="users" property="nome" />
     <bean:write name="comment" property="comment" />
  </logic:iterate 
</logic:iterate> 

Alguma coisa assim.

conseguiu entender?!

Espero ter ajudado!

abraços!

valeu ae jujo!
eu vi q o q eu tava fazendo errado… tava mto bagunçado meus objetos… métodos confusos e td mais…
to organizando tudo agora…

mas eu só nao entendi essa primeira linha no seu código…

e desse jeito vai sair assim né?

e eu queria q a saída fosse assim:

mas isso é questao de algoritmo… eu acerto isso

a chave do problema eu ja achei… meu objetos tavam estranhos! hehehae

valeu o help aí!
qualquer coisa eu posto de novo!

valeuzz!!

não… a saída será como a sua segunda listagem ali…

ta vendo que os dois bean:write estão dentro do segundo iterate?!

é isso ai!

abraços!

o primeiro iterate é a collection dos nomes?

não é melhor usar o c:forEach da JSTL?

nao nao… algumas frameworks MVC ja são bem completas…
o WebWork (q eu conheço um pouco) ja tem uma tag library bem completa pra camada de View… nao acho q seria interessante misturar a JSTL no meio de tudo isso…

mesmo assim valeu por aparecer aki!

abraços!

aeeee jujo e matheus!!

graças a ajuda de vcs to progredindo bastante…
por enquanto o desenvolvimento ta indo tranquilo sem problemas…
desemperrei da parte q eu tava travado!

usei a ideia do matheus de retornar uma collection de objetos preechidos do tipo User com os dados encapsulados… funcionou perfeito
foi até melhor assim pq isso facilitou e mto nas tags de iterator do WebWork…

mas isso me deixou com uma dúvida…
apesar do objeto User ser pequeno, tem apenas 4 Strings nele, sendo q só uma (String comentario) é um pouco maior… E qdo a Collection preenchida chegar a ser 500 Objetos User cheia de dados?
nao vai ficar pesado pro Tomcat fazer um Dispacher dessa Collection pro JSP?

nao sei se entenderam a minha duvida…
qualquer coisa eu explico mais detalhadamente

abraços!

pesado vai… mas se tu quiser mostrar tudo num jsp só, não tem outro jeito :slight_smile:

ah, tb podia ter feito com EL :slight_smile:

nunca mexi com EL… pra falar a verdade nem sei pra q q serve direito :oops:
é tipo tags q conversam diretamente com o JavaBeans?

se for isso q eu to pensando q EL seja, entao nao faria mais sentido usar as Tags de View do WW?

abraços

nunca mexi com EL… pra falar a verdade nem sei pra q q serve direito :oops:
é tipo tags q conversam diretamente com o JavaBeans?

se for isso q eu to pensando q EL seja, entao nao faria mais sentido usar as Tags de View do WW?

abraços[/quote]

EL é tipo um velocity, mas a EL ja esta inclusa na especificação a um tempo… nao sei pq ninguém usa… :roll: … mas teria q ter JSTL tb pra iterar eu acredito

ahh… entao deixa queto…
to feliz só com o WW! :grin: :razz:

abraços

ps: daqui a pouco sai uma versao funcional do sisteminha q eu to fazendo (só uma parte dele)
aí eu libero o link pra galera acessar

nao nao… algumas frameworks MVC ja são bem completas…
o WebWork (q eu conheço um pouco) ja tem uma tag library bem completa pra camada de View… nao acho q seria interessante misturar a JSTL no meio de tudo isso…

mesmo assim valeu por aparecer aki!

abraços![/quote]

ah, mas JSTL te deixa mais independente de framework :cool:

não é isso que é uma das grandes propagandas do java? ser independente de fornecedores?

é uma boa razao mesmo mesmo! :grin:

mas aí nao faria mto sentido eu ta usando uma framwork completa! :cool:
e tem outro motivo… o principal motivo de eu estar usando o WebWork é no auxilio na camada Controller do MVC… ajudando na transição das paginas e ações, e passando os dados para a tela sem precisar código java no JSP… entao ja q eu tenho q optei por usar o WW, entao vo usar todos os recursos q ela oferece! :razz: um deles saõ as TagLibrary!

e o WW nao se prende tanto na aplicação como o Struts… caso eu precise mudar de framework MVC, acredito q nao vai ser tao trabalhoso assim!

eu adoro esse tipo de discussão! :wink:

valeu ae!
abraços

Tem razão Daniel, se for usar que use tudo dele mesmo…

Apesar de o WebWork não ser tão amarrado como o Struts ainda te deixa bastante amarrado, e uma migração de framework fica tbm dolosa.
A pior coisa é que vc precisa extender classes para poder usar o framework…

ainda estou estudando sobre essas dependencias e amarrações… vamo v no que vai dar!

Acompanhe a outra Thread aqui na FrameWorks sobre Independência… Struts, Webwork…

http://www.portaljava.com.br/home/modules.php?name=Forums&file=viewtopic&t=14410

Abraços!