<h:selectOneMenu/> ou DropDown RichFaces Aninhados com BD

9 respostas
UMC

Olá pessoal
Alguem tem algum exemplo de Combo box aninhado com banco de dados usando RichFaces ?
por favor posta ae!!
nao sei construir!!
vlw
abs

9 Respostas

thiago.correa

Aqui tem um exemplo de como atualizar o conteúdo de uma tabela usando o a4j:support

http://docs.jboss.org/richfaces/3.3.2.GA/en/devguide/html/a4j_support.html

a idéia é a mesma, porém ao invés de atualizar uma tabela, você vai atualizar um outro combo a partir das informações adquiridas!

UMC

Já vi isso mais deu erro aki!!
Obrigado por responder!!
vlw

thiago.correa

E qual foi o erro?! Qual é o código que você está tentando executar?!

UMC
JSP -> ricfaces
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h:form id="planetsForm">

    <h:outputLabel value="Select the planet:" for="planets" />

    <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">

        <f:selectItems value="#{planetsMoons.planetsList}" />

        <a4j:support event="onchange" reRender="moons" />

    </h:selectOneMenu>

    <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">

        <h:column>

            <h:outputText value="#{item}"/>

        </h:column>

    </h:dataTable>

</h:form>
    <body/>
</html>
CLASSE -> PlanetsMoons ta np pacote padrao sem "nome"
public class PlanetsMoons {

    private String currentPlanet="";

    public List<SelectItem> planetsList = new ArrayList<SelectItem>();

    public List<String> moonsList = new ArrayList<String>();

    private static final String [] EARTH = {"The Moon"};

    private static final String [] MARS = {"Deimos", "Phobos"};

    private static final String [] JUPITER = {"Europa", "Gamymede", "Callisto"};

    

    public PlanetsMoons() {

        SelectItem item = new SelectItem("earth", "Earth");

        planetsList.add(item);

        item = new SelectItem("mars", "Mars");

        planetsList.add(item);

        item = new SelectItem("jupiter", "Jupiter");

        planetsList.add(item);

    }

    

    public void planetChanged(ValueChangeEvent event){

         moonsList.clear();

         String[] currentItems;

         if (((String)event.getNewValue()).equals("earth")) {

             currentItems = EARTH;

         }else if(((String)event.getNewValue()).equals("mars")){

             currentItems = MARS;

         }else{

             currentItems = JUPITER;

         }

         for (int i = 0; i < currentItems.length; i++) {

             moonsList.add(currentItems[i]);

         }       

     }

        

    //Getters and Setters

  

}
ERRO é na JSP Linha:
<h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
Erro:
#{...}not allowed in a template text body.
thiago.correa

Pelo visto o Facelets não aceita as ELs do JSF em seus templates, tenta fazer o mesmo teste mas usando uma página JSF simples!

UMC

sera q nao é problema de PACOTE ond a classe Planets… esta localizado???
pq quando eu retiro essa linha #{planetsMoons.currentPlanet} para construi-la na mao ele n tem sugestoes!!
PS. eu ja to usando uma pag JSP pura!!
vlw

UMC

Alguem mais!!

P

Hello UMC! Resolveu o problema? Não sei mais o que fazer. Agradeço qualquer ajuda.

UMC

Esse não, pois eu acabei usando JSF, usando um recurso do NetBeans que facilitou mas não é mais continuado só tem até a 6.5

vlw

Criado 15 de janeiro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 9
Participantes 3