Caros,
Sua ajuda será muito apreciada 
Estou estudando JSF 2.0 com PrimeFaces 3.4 e estou tendo um problemão pra implementar uma lista dependente de outra lista.
Possuo uma classe para registrar viagens, previamente cadastrada, a qual possui 3 atributos: origem, destino e custo(e ID).
Meu problema é que tenho outra classe chamada “Planos”, na qual seria selecionado a origem, o destino deveria ser preenchido baseado na origem que acabei de selecionar, e quando o destino for selecionado, o custo vir automático.
Não estou conseguindo implementar tal funcionalidade. Alguém me ajuda, por favor?
Atualmente eu estou fazendo da seguinte forma:
Planos.xhtml
<h:outputLabel value="From"/>
<h:selectOneMenu value="#{planController.plan.cityFrom}">
<f:selectItem itemLabel="Select One" itemValue=""/>
<f:selectItems value="#{planController.listarCitiesFrom}"/>
<f:ajax render="cityTo" event="change"/>
</h:selectOneMenu>
<h:outputLabel value="To"/>
<h:selectOneMenu id="cityTo" value="#{planController.plan.cityTo}">
<f:selectItem itemLabel="Select One" itemValue=""/>
<f:selectItems value="#{planController.listarCitiesTo}"/>
</h:selectOneMenu>
<h:outputLabel for="days" value="Days"/>
<h:inputText id="days" value="#{planController.plan.days}"/>
<h:outputLabel for="reason" value="Reason"/>
<h:inputText id="reason" value="#{planController.plan.reason}">
</h:inputText>
<h:outputLabel for="hotelCost" value="Hotel(USD)"/>
<h:inputText id="hotelCost" value="#{planController.plan.hotelCost}">
<f:convertNumber maxFractionDigits="2" locale="pt-BR" />
<f:ajax event="keyup" render="travelCost"/>
</h:inputText>
<h:outputLabel for="ticketCost" value="Ticket(USD)"/>
<h:inputText id="ticketCost" value="#{planController.plan.ticketCost}">
<f:convertNumber maxFractionDigits="2" locale="pt-BR" />
<f:ajax event="keyup" render="travelCost"/>
</h:inputText>
Dois métodos do meu “MB” para listar os “destino e origem” - PlanController.java
public DataModel getListarCitiesTo() {
List<Travel> listaTo = new TravelDaoImp().getTravelTo();
listaCitiesTo = new ListDataModel(listaTo);
return listaCitiesTo;
}
public DataModel getListarCitiesFrom() {
List<Travel> listaFrom = new TravelDaoImp().getTravelFrom();
listaCitiesTo = new ListDataModel(listaFrom);
return listaCitiesTo;
}
Meus métodos no “DAO”
public List<Travel> getTravelFrom() {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
Projection projection = Projections.property("cityFrom");
Criteria criteria = session.createCriteria(Travel.class);
criteria.setProjection(projection);
List lista = criteria.list();
t.commit();
return lista;
}
public List<Travel> getTravelTo() {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction t = session.beginTransaction();
Projection projection = Projections.property("cityTo");
Criteria criteria = session.createCriteria(Travel.class);
criteria.setProjection(projection);
List lista = criteria.list();
t.commit();
return lista;
}
Qualquer sugestão para ajudar nos meus estudos será muito bem-vinda!
