Pessoal, agradeço muito a ajuda, vcs sabem como é dificil conseguir ajuda hj em dia, principalmente sobre um assunto tão complicado (pra mim, que sou iniciante em java).
JonathanSSantos, eu já conhecia outros trabalhos do Serjaum, são muito bons. Estou fazendo a implementação sugerida, mas está me retornando uma ServletException: Error reading ‘servicoParaComboBox’.
vou postar meu codigo no bean, no dao e no jsp pra ver se fica mais claro pra vcs me ajudarem:
no Bean===============
[code]public List getServicoParaComboBox() {
// NOVA IMPLEMENTAÇAO DE TESTE
Session session = HibernateUtil.currentSession();
ServicoDao dao = new ServicoDao(session, Servico.class);
List<Servico> servicos = dao.pesquisaServicos(this.programa
.getCod_programa());
List<SelectItem> lista = new ArrayList<SelectItem>(servicos.size());
for (Servico s : servicos) {
lista.add(new SelectItem(s.getCod_servico(), s.getNome()));
}
return lista;
}
public void actionCarregaServicos() {
System.out.println("id do programa selecionado >>> "
+ this.programa.getCod_programa());
this.servico = (Servico) this.getServicoParaComboBox(); //TIVE DE COLOCAR O CAST PARA SERVICO, PQ FICAVA DANDO ERRO E PEDINDO PRA MUDAR O servico para List<SelectItem>;
}
[/code]
o DAo========
[code]public class ServicoDao extends Dao {
public ServicoDao(Session session, Class<Servico> classe) { //no tutorial do serjaum, ele recomendou usar Class<?> classe, aqui não deu certo
super(session, classe);
}
@SuppressWarnings("unchecked")
public List<Servico> getServicoByPrograma(Long id) { // esse foi o método do serjaum... deu a ServletException
Query q = session.createQuery("select c from "
+ Servico.class.getName()
+ " as c where c.programa.id like :id");
q.setParameter("id", id);
return q.list();
}
@SuppressWarnings("unchecked")
public List<Servico> pesquisaServicos(Long id) { //esse eu adaptei para teste, usando criteria, mas deu a mesma ServletException
Criteria c = session.createCriteria(Servico.class);
c.add(Restrictions.ilike("id", "%" + id + "%"));
return c.list();
}
}
[/code]
jsp==========
[code]<h:outputLabel for=“programa” value=“Programa: " />
<h:selectOneMenu value=”#{unidadeHandler.programaSelecionado}" valueChangeListener="#{unidadeHandler.atualizaDataTable}" >
<f:selectItem itemValue=“2” id=“p” itemLabel=“Selecione”/>
<f:selectItems value="#{unidadeHandler.programaParaComboBox}" />
<a4j:support event=“onchange” ajaxSingle=“true” action="#{unidadeHandler.actionCarregaServicos}" reRender=“programa,servico”/>
</h:selectOneMenu>
<h:outputLabel for="servico" value="Serviço: " />
<h:selectOneMenu binding="#{unidadeHandler.servicoSelecionado}">
<f:selectItem itemValue="3" itemLabel="Selecione"/>
<f:selectItems value="#{unidadeHandler.servicoParaComboBox}" /> //ELE APRESENTA O ERRO NESSA LINHA!!!!
</h:selectOneMenu>
[/code]
eae pessoal, alguma luz no fim do túnel???
Feliz Natal e um Próspero ano novo a todos!!!