Pessoal,
Estou estudando agora JSF, li algumas apostilas, vi alguns videos no youtube etc, mas até o momento não vi algo que é muito útil, tentei fazer e não consegui. Vou explicar melhor.
Em JSP eu consigo por exemplo, em uma tabela de Servicos que guarda o id da tabela TipoServicos, usar um for dentro do outro (ou usando while) e montar uma estrutura na tela com um titulo que vem da tabela TipoServico, e listar a baixo todos os Serviços da tabela Serviços ligado aquele código, termina, segue para o próximo tipo de serviço. O problema, como faço isso em JSF? Imaginei que eu teria que usar um DataTable dentro do outro, seria realmente isso? Tentei, porem não consigo, sempre da erro, vou postar o código aqui, se alguém puder me ajudar.
Meu método no pacote repository:
public List<Servico> getServicosSel(Long id) {
Query query = this.entityManager.createQuery("select s from Servico as s where tipoServico_id = :id");
query.setParameter("id", id);
return query.getResultList();
}
Meu método no pacote Bean:
public List<Servico> getServicosSel(TipoServico tipoServico) {
ServicoRep servicoRep = new ServicoRep(this.entityManager);
this.servicos = servicoRep.getServicosSel(tipoServico.getId());
return this.servicos;
}
O form na minha página xhtml:
<h:form>
<h:dataTable id="tabelaprincipal" value="#{tipoServicoBean.tipoServicos}" var="tipo" width="100%">
<h:column>
<div class="titulo">#{tipo.tipo}</div>
<h:dataTable id="tabela" value="#{servicoBean.servicosSel(tipo)}" var="servico">
<h:column>
<div class="texto">
<span class="destaque"> * </span><h:commandLink styleClass="corpo_link" value="#{servico.servico}" action="#{servicoBean.procura(servico)}"/>
</div>
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
</h:form>
Não sei se seria essa a maneira correta de fazer o que estou tentando, caso seja a maneira errada, gostaria de saber qual a certa, e se estiver no caminho certo, por favor, alguém me diz porque retorna o erro abaixo:
Erro:
javax.servlet.ServletException: /servicos.xhtml @53,87 value="#{servicoBean.servicosSel(tipo)}": Unable to find method [servicosSel] with [1] parameters
javax.faces.webapp.FacesServlet.service(FacesServlet.java:521)
filtros.JPAFilter.doFilter(JPAFilter.java:22)
Todo tipo de ajuda é bem vinda.