Problema com commandLink com tabela dentro e reRender

Ao clicar numa linha de um datatabele um item é selecionado, exibindo algumas informações e um botão para geração de pdf com as informações do item selecionado na mesma página.

O botão do Pdf e as informações da tela são exibidos apenas quando um item do datatable é clicado (devido aos problemas quanto a por um texto e uma imagem num botão, pra ficar bonito, o botão do pdf é uma tabela com as imagens/texto e dentro de um commandLink.), ou seja, o div “divInformacoes” é rerenderizado com as informações atuais. Mas ao rerenderizar o div, a tabela com o botão fica do lado de fora do link.

Sem a tabela do botão, o link funciona normalmente…

O código fica mais ou menos assim…

    <ui:define name="body">
    <a4j:commandLink reRender="divInformacoes" action="#{bean.acao}">
        <h:outputText value="Clique aqui"/>
    </a4j:commandLink>
    <t:div id="divInformacoes">
        <h:commandLink styleClass="button" action="#{bean.gerarPDF}" rendered="#{bean.atributo != null }">
            <h:panelGrid columns="2">
                <h:column>
                    <h:graphicImage url="#{usuario.pathImageComplete}pdf.png" />
                </h:column>
                <h:column>
                    <h:outputText value="PDF"/>
                </h:column>
            </h:panelGrid>
        </h:commandLink>
        <t:div>
            <t:div>
                <ui:include src="/pagina/pagina.jspx"/>
            </t:div>
        </t:div>
    </t:div>
</ui:define>

e o código fonte da página fica assim, com a tabela do botão fora do link…

<div xmlns="http://www.w3.org/1999/xhtml">
<a   href="http://localhost:8080/joinrhweb/formulario/codFormulario/1#"/>

Alguém tem alguma idéia de porque isso acontece?

O porque isso acontece é algo meio dificil de alguem saber, o tomahawk é meio doido.

Mas tenho duas idéias que pode resolver seu problema.

Troque a tag <t:div> por <t:htmlTag value=“div”>
ou
no lugar do <t:div> coloque um rich:panel, e personalize o seu css, caso não queria que o estilo do rich seja usado.

Obs.: Evite usar o tomahawk, ele é muito instável

[]s

Pelo que eu consegui ver aqui o problema não é com o div, já tinha tentado trocar por outros componentes e não resolveu.
A solução que eu encontrei foi tirar a tabela do botão e substituir por outra coisa.

Obrigada pela ajuda :slight_smile: