Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

viewAction: diferença entre #{param['livroId']} e #{livroId}

Bom dia,

por que no xhtml autor.xhtml eu consigo acessar o parâmetro autorId somente com a sintaxe if="#{autorId != null}" e no livro.xhtml eu tenho que usar if="#{param['livroId'] != null}", sendo que se eu usar if="#{livroId' != null}" não funciona? Seguem os códigos abaixo:

Esse aqui funciona:

        <f:metadata>
            <f:viewParam name="autorId" value="#{autorBean.autorId}" />
            <f:viewAction action="#{autorBean.carregarAutorPelaId}" if="#{autorId != null}" />
        </f:metadata>

Esse aqui também funciona:

        <f:metadata>
            <f:viewParam name="livroId" value="#{livroBean.livroId}" />
            <f:viewAction action="#{livroBean.carregarLivroPelaId}" if="#{param['livroId'] != null}"  />
        </f:metadata>

Esse aqui NÃO funciona:

        <f:metadata>
            <f:viewParam name="livroId" value="#{livroBean.livroId}" />
            <f:viewAction action="#{livroBean.carregarLivroPelaId}" if="#{livroId != null}"  />
        </f:metadata>
1 resposta
solução!

Oi Wiler, boa tarde.

Cara, aqui no meu projeto nenhum dos dois esta funcionando sem o param. A página até renderiza mas os dados do form ficam vazios pq o valor do id no Managed Bean fica null.

Veja se nesse exemplo esta retornando os valores no form:

<f:metadata>
    <f:viewParam name="autorId" value="#{autorBean.autorId}" /> 
    <f:viewAction action="#{autorBean.carregarAutorPelaId}" if="#{autorId != null}" />
</f:metadata>