RichFaces com tabPanel e selectOneMenu não deixa mudar a aba

2 respostas
tebosoftware

Bom dia pessoal

Estou desenvolvendo uma interface onde o usuário em uma aba vê a parte da pesquisa de dados e na segunda aba vê o registro para alterar os dados.
Numa tela inicial que desenvolvi funcionou corretamente pois tanto a pesquisa quando o registro funciona corretamente, mas na segunda que montei não funciona.
Eu notei que só não funciona porque eu tenho que utilizar um selectOneMenu, e quando comentei o código dele funcionou tudo corretamente. Eu notei também que ao colocar o selectOneMenu todas as ações da tela ficam invalidadas.

Abaixo segue cada parte do código:

cadCidade.jsp

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
<link rel="StyleSheet" href="css/principal.css" type="text/css" media="all" />

<f:subview id="cadCidade">
    <a4j:form>
        <%-- Dados Gerais --%>
        <h:panelGroup layout="block" id="painelPrincipal" >
            <h:outputText value="Cadastro de Cidades" styleClass="titulo" />
            <rich:tabPanel id="abas" selectedTab="#{cidadeController.aba}" switchType="ajax" immediate="true">
                <rich:tab name="pesquisa" label="Pesquisa" focus="txtPesquisaEstado">
                    <a4j:include viewId="cadCidadePesquisa.jsp" />
                </rich:tab>
                <rich:tab id="abaRegistro" name="registro" label="Registro" focus="txtEstado" >
                    <a4j:include viewId="cadCidadeRegistro.jsp" />
                </rich:tab>
            </rich:tabPanel>
        </h:panelGroup>
    </a4j:form>
</f:subview>

cadCidadePesquisa.jsp

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j"%>

<f:subview id="cadCidadePesquisa">
    <rich:panel>
        <f:facet name="header">
            <h:outputText value="Filtro" />
        </f:facet>
        <h:panelGrid columns="2">
            <h:outputText value="Estado:" />
            <h:selectOneMenu value="#{cidadeController.estado}">
                <f:selectItems value="#{cidadeController.selectItemListaEstado}" />
            </h:selectOneMenu>
            <h:outputText value="Descrição:" />
            <h:inputText value="#{cidadeController.descricao}" maxlength="40" size="40" onblur="this.value=this.value.toUpperCase();" />
            <a4j:commandButton action="#{cidadeController.novo}" value="Novo" reRender="abas" focus="txtEstado" />
            <a4j:commandButton action="#{cidadeController.pesquisar}" value="Pesquisar" reRender="dados" />
        </h:panelGrid>
    </rich:panel>
    <rich:spacer height="10" />
    <rich:panel rendered="#{not empty cidadeController.lista}">
        <f:facet name="header">
            <h:outputText value="Resultado (#{cidadeController.totalRegistros})"  />
        </f:facet>
        <rich:dataTable id="dados" var="cidade" value="#{cidadeController.lista}" rows="10" style="width:400px;">
            <f:facet name="header">
                <rich:columnGroup>
                    <rich:column style="width:20px" />
                    <rich:column style="width:20px" />
                    <rich:column style="width:35px">
                        <h:outputText value="Sigla" />
                    </rich:column>
                    <rich:column>
                        <h:outputText value="Descrição" />
                    </rich:column>
                </rich:columnGroup>
            </f:facet>
            <rich:columnGroup>
                <rich:column>
                    <a4j:commandLink action="#{cidadeController.editar}" reRender="abas,abaRegistro" focus="txtDescricao">
                        <h:graphicImage url="imagens/editar.png" style="border: 0px;" alt="Clique aqui editar" />
                        <f:setPropertyActionListener target="#{cidadeController.modeloAtual}" value="#{cidade}" />
                    </a4j:commandLink>
                </rich:column>
                <rich:column>
                    <h:commandLink onclick="return confirm('Excluir cidade ?');"
                                   action="#{cidadeController.excluir}">
                        <a4j:support event="onclick" reRender="dados" ajaxSingle="true" />
                        <h:graphicImage url="imagens/excluir.png" style="border: 0px;" alt="Clique aqui para excluir" />
                        <f:setPropertyActionListener target="#{cidadeController.modeloAtual}" value="#{cidade}" />
                    </h:commandLink>
                </rich:column>
                <rich:column>
                    <h:outputText value="#{cidade.estado.sigla}" />
                </rich:column>
                <rich:column>
                    <h:outputText value="#{cidade.descricao}" />
                </rich:column>
            </rich:columnGroup>
            <f:facet name="footer">
                <rich:datascroller id="sc1" align="left" renderIfSinglePage="false" for="dados" maxPages="20" />
            </f:facet>
        </rich:dataTable>
    </rich:panel>
</f:subview>

cadCidadeRegistro.jsp

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j"%>

<f:subview id="cadCidadeRegistro">
    <h:panelGroup id="mensagem" layout="block" rendered="#{not empty cidadeController.mensagem}">
        <h:outputText value="#{cidadeController.mensagem}" styleClass="mensagemInfo" />
    </h:panelGroup>
    <h:panelGroup id="erros" layout="block" rendered="#{not empty cidadeController.mensagemErro}">
        <a4j:repeat var="erro" value="#{cidadeController.mensagemErro}">
            &lt;h:outputText value="#{erro}" styleClass="mensagemErro" /&gt;<br />
        &lt;/a4j:repeat&gt;
    &lt;/h:panelGroup&gt;
    &lt;h:panelGrid columns="2" &gt;
        &lt;h:outputText value="Estado:" /&gt;
        &lt;h:selectOneMenu id="txtEstado" value="#{cidadeController.modeloAtual.estado}"&gt;
            &lt;f:selectItems value="#{cidadeController.selectItemListaEstado}" /&gt;
        &lt;/h:selectOneMenu&gt;
        &lt;h:outputText value="Descrição:" /&gt;
        &lt;h:inputText id="txtDescricao" value="#{cidadeController.modeloAtual.descricao}" maxlength="40" size="40"
                     onblur="this.value=this.value.toUpperCase();" /&gt;
        &lt;a4j:commandButton action="#{cidadeController.gravar}" value="Gravar" reRender="erros,abas" focus="txtEstado" /&gt;
        &lt;a4j:commandButton action="#{cidadeController.cancelar}" value="Cancelar" reRender="abas" /&gt;
    &lt;/h:panelGrid&gt;
&lt;/f:subview&gt;

se alguém puder me ajudar ficarei muito agradecido.

2 Respostas

tebosoftware

Ninguém tem alguma ideia?

tebosoftware

Pessoal eu não estou consegui resolver o problema ainda, só da falha quando o h:selectOneMenu está presente do código.

ninguém passou por isso ainda não?

grato

Criado 30 de dezembro de 2010
Ultima resposta 4 de jan. de 2011
Respostas 2
Participantes 1