Como fazer isso com JSF

15 respostas
M

Pessoal, boa tarde a todos.

É o seguinte, estou iniciando em JSF e tenho uma dúvida bastante simples.

Imagine em uma página, por exemplo na index.jsp onde tenho algumas notícias List no meu Managed Bean.

É o seguinte, tenho um design próprio para exibir as notícias que é:

<!-- Uma notícia... -->		  
<table align="center" cellpadding="7" width="90%">
 <tbody>
   <tr>
          <td bgcolor="#f6f6f6">
           <a href="index.jsp"><b>Titulo...</b><br>
	      <i>data...i>
                </a>
               <hr align="left" color="#cccccc" size="1" width="95%">
               <a href="index.jsp"></a> 
               chamada da noticia<br>
           </td>
   </tr>
</tbody>
</table>
<br>  
  <!-- Fim item Novidade -->

Então, tenho o meu List como faço para varrer eles e exibir em minha página JSF, não consegui usando dataTable, por causa da identidade visual necessária…

Alguém poderia me dar uma força?

Um abraço a todos.

Mateus.

15 Respostas

D

Vc pode utilizar JSTL e fazer um “c:forEach”, somente tome cuidados como renderizar UIComponents senão vc vai receber um DuplicateComponentID.

Se possível utilize facelets e faça a iteração via <ui:repeat/>

webdouglas

existe a tag do MyFaces Tomahawk <t:dataList>

serve?

gilliard_santos

voce poderia usar facelets para criar um componente que tivesse como conteúdo esse trecho de página que voce postou… e entao usar o c:forEach ou ui:repeat, como o dders falou. Acredito que até mesmo na dataTable daria certo, mas talvez ficasse menos lógico usá-la nesse caso.
na sua página ficaria mais ou menos assim

&lt;c:forEach var="varNoticia" items="#{ManagedBean.noticias}"&gt;
   &lt;seuPrefixo:exibirNoticia noticia="#{varNoticia}"/&gt;
&lt;/c:forEach&gt;

na minha opinião assim fica bem legal, e voce pode reutilizar essa tag em outro lugar, passar para ela parametros se ela deve aparecer de modo resumido ou completo… e por aí vai.

M

Poxa, que legal pessoal ! Gostei da idéia do Facelets, alguém teria um tutorial sobre facelets? Sou iniciante nisso e não manjo quase nada.

Um abraço,

Mateus.

gilliard_santos

A MundoJava desse mês tem um tutorial que pode te ajudar.

toninho

Um dica:

Compra a revista Mundo Java edição 21 (última edição) e leia o artigo: Conhecendo JSF e Facelets 1.2 escrito pelo gilliard_santos.

O artigo está excelente como outros também, vale a pena!

:smiley:

M

O Gilliard parabéns !!! Vou comprar hoje mesmo !

Um abraço para vocês ! Em breve posto os resultados aqui :smiley:

gilliard_santos

Obrigado, espero que te ajude. Qualquer coisa posta aqui que a gente ve o que pode fazer :wink:

M

Gilliard,

Acabei de ler o artigo e baixei no site o exemplo. Como sou novato, não to conseguindo fazer o exemplo funcionar :frowning:

Clico no Inicializa Banco e não acontece nada…

Abraço,

Mateus.

gilliard_santos

Você criou o banco?
Naquele arquivo leia-me.txt diz que voce tem que criar o banco primeiro, e acertar a configuracao do hibernate (se não me engano, lá deve estar usando o postgresql).
Fora isso é só instalar o war. Qualquer coisa, se fazendo isso nao der certo, fala aí.

M

Gilliard,

Desculpe ocupar seu tempo… baixei os arquivos mas não tem nenhum leia-me e tb não tem algum arquivo de script .SQL para criar o bd.

Rapaz, desculpe te incomodar, é que estou me esforçando para aprender JSF… que tem sido difícil…

Se puder, me mande por email essas coisas… : mateus_dias(at)yahoo(dot)com(dot)br

Abraço,

Mateus.

gilliard_santos

Poutz, é que o leia-me nao está disponivel para download :?
Mas ele basicamente explica isso que eu já disse.
Não precisa de nenhum script, pois apesar do artigo não ser direcionado ao uso do hibernate, com ele voce pode ter uma idéia também de como usar ele. Crie um BD qualquer na sua máquina e configure o hibernate na aplicação (isso voce encontra facilmente pela net). Criando o banco, o hibernate cria as tabelas sozinho na primeira execução.
Se voce for usar algum banco diferente tem que configurar o dialeto e adicionar o jar do drive jdbc no projeto.

douglasrodrigo

Olá Gilliard eu também baixei o exemplo, eu alterei as configurações do banco e joguei a pasta no tomcat e funcionou normal, então eu criei uma pasta com a estrutura de diretórios src para poder criar projeto e fazendo o deploy eu tenho erro

could not find Factory: javax.faces.context.FacesContextFactory

mas msm assim o deploy é realizado mas qdo tento acessar home.jsf ele retorna esse erro novamente, se eu mudar para home.jsp eu consigo visualizar só que tudo errado obviamente (hehehehe) o mapeamento do facelets não estã funcionando
gostaria que me desse um norte.

obrigado.
Douglas.

gilliard_santos

Olá Douglas, nao entendi muito bem… voce está tentando colocar o projeto numa IDE? Se for isso, importa pela opção importar War que deve dar certo. No eclipse funciona perfeitamente.

douglasrodrigo

Vlw… Gilliard mas eu já consegui fazer funcionar… vlw pela ajuda.
Eu li o seu artigo da revista e estou me decidindo em usar facelets na empresa em que eu trabalho.

Criado 24 de janeiro de 2007
Ultima resposta 9 de fev. de 2007
Respostas 15
Participantes 6