Problema com rich:modalPanel e ajax [RESOLVIDO]

1 resposta
G

Olá pessoal, estou desenvolvendo um projeto com JSF, usando os componentes do RichFaces, entretanto, ao implementar uma página que usa o componente rich:tabPanel e dentro dela uma tabela rich:dataTable com um link rich:modalPanel, as tabs não executam. Eu não consigo mudar de tab, dá o seguinte erro, na renderização:

Esse é o código da página que contém a tab:

<rich:tabPanel headerSpacing="2" width="100%" switchType="ajax">
                                    <!-- TAB 1 - Basicos 1 -->
                                    <rich:tab label="Basicos 1">
                                        <table width="100%" cellpadding="0" cellspacing="0" align="left">
                                            <!-- TÍTULO PÁGINA - Cadastro de Produto -->
                                            <tr>
                                                <td width="100%" height="25" align="left">
                                                    <mc:msgError/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td width="100%" align="right">
                                                    <table width="100%" cellpadding="0" cellspacing="0" border="0" class="table">
                                                        <!-- TÍTULO TABELA 1 - Dados do Produto -->
                                                        <tr class="rowTableTitle">
                                                            <td width="100%">
                                                                <h:outputText value="#{msg.titleData1}"/>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td width="100%">
                                                                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                                                    <!-- CAMPOS TABELA DADOS - Linha 1 -->
                                                                    <tr>
                                                                        <td height="10px"></td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td width="2%">
                                                                        </td>
                                                                        <td width="20%">
                                                                            <h:outputText value="#{msg.cnpj}" binding="#{TesteMB.cnpjText}"/>
                                                                        </td>
                                                                        <td width="60%" align="left">
                                                                            <h:outputText value="#{msg.companyName}"/>
                                                                        </td>
                                                                        <td width="10%" align="left">
                                                                        </td>
                                                                        <!-- Resultado da busca -->
                                                                        <td width="8%" align="left">
                                                                        </td>
                                                                        <td width="2%">
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td width="2%">
                                                                        </td>
                                                                        <td width="20%">
                                                                            <h:inputText id="cnpjT" size="20" value="#{TesteMB.fornecedor.cnpj}">
                                                                                <a4j:support event="onfocus" ajaxSingle="true" action="#{TesteMB.encontrarFornecedorAction}"  reRender="razaosocial, idFornecedor"/>
                                                                            </h:inputText>
                                                                           
                                                                        </td>
                                                                        <td width="60%" align="left">
                                                                            <h:inputText value="#{TesteMB.fornecedor.razaoSocial}" size="60" id="razaosocial"/>
                                                                            <h:inputHidden id="idFornecedor" value="#{TesteMB.fornecedor.id}"/>
                                                                        </td>
                                                                        <td width="10%" align="left">
                                                                            <div class="botoes">
                                                                                <h:commandLink   style="text-decoration:none;border:none">
                                                                                    
                                                                                    <h:graphicImage value="/img/adicionar.png" styleClass="alignImgButton" alt="adicionar" style="width:20px; heigth:30px"></h:graphicImage>
                                                                                    <h:outputText value="Adicionar" style="color:#000000"/>
                                                                                </h:commandLink>
                                                                            </div>
                                                                        </td>
                                                                        <!-- Resultado da busca -->
                                                                        <td width="8%" align="left">
                                                                        </td>
                                                                        <td width="2%">
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <mc:modalPanelLogic/>
                                                                        <td width="100%">
                                                                            <rich:dataTable value="#{TesteMB.fornecedorList}" binding="#{TesteMB.dataTable}" rows="5" var="fornecedor" id="tabela2" rowClasses="rowTableEven, rowTableOdd">
                                                                                <rich:column width="10%">
                                                                                    <f:facet name="header">
                                                                                        <h:outputText value=""/>
                                                                                    </f:facet>
                                                                                    <h:outputLink value="#" id="link">Show
                                                                                        <rich:componentControl for="panel" attachTo="link" operation="show" event="onclick"/>
                                                                                    </h:outputLink>
                                                                                </rich:column>
                                                                                <rich:column width="30%">
                                                                                    <f:facet name="header">
                                                                                        <h:outputText value="CNPJ"/>
                                                                                    </f:facet>
                                                                                    <h:outputText value="#{fornecedor.cnpj}"/>
                                                                                </rich:column>
                                                                                <rich:column width="30%">
                                                                                    <f:facet name="header">
                                                                                        <h:outputText value="Razão Social"/>
                                                                                    </f:facet>
                                                                                    <h:outputText value="#{fornecedor.razaoSocial}"/>
                                                                                </rich:column>
                                                                                <rich:column width="30%">
                                                                                </rich:column>
                                                                            </rich:dataTable>
                                                                        </td>
                                                                    </tr>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                </td>
                                            </tr>
                                        </table>
                                    </rich:tab>
                                    <rich:tab id="tab2"  label="Second">
                                        <table width="100%" cellpadding="0" cellspacing="0" align="left">
                                            <!-- TÍTULO PÁGINA - Cadastro de Produto -->
                                            <tr>
                                                <td width="100%" height="25" align="left">
                                                    Teste
                                                    <mc:msgError/>
                                                </td>
                                            </tr>
                                        </table>
                                    </rich:tab>
                                    <rich:tab label="Third">
                                        Here is tab #3
                                    </rich:tab>
                                </rich:tabPanel>

Alguém já passou pelo mesmo problema e conseguiu resolver?

Grata,

Greice

1 Resposta

G

Bom pessoal, eu consegui resolver o problema acima usando a propriedade switchType do rich:tabPanel como “client”, porque estava como ajax, assim, consegui navegar nas tabs e apresentar o meu modalPanel na mesma página.

Entretanto, os componentes da página que utilizam ajax, também geraram a mesma exceção citada, então, depois de muito quebrar a cabeça, mandei renderizar o modalPanel em todos os componentes que contém a tag , ou seja, para as tags <a4j:commandButton, a4j:support…> coloquei na propriedade reRender deles o id do modalPanel. Isso resolveu meu problema.

Como não consegui encontrar nada a respeito na internet, deixo minha solução aqui para quem precisar.

Até mais,

Greice

Criado 31 de março de 2009
Ultima resposta 2 de abr. de 2009
Respostas 1
Participantes 1