1
resposta

Componente fora do form

</h:form>
    <fieldset>
        <legend>Dados autores</legend>
        <h:dataTable id="tabela_autores" 
            value="#{livroBean.livro.autores}" var="autor"
            styleClass="order-table" headerClass="order-table-header"
    rowClasses="order-table-odd-row,order-table-even-row">
            <h:column>
                <f:facet name="header">Nome autor</f:facet>
                    #{autor.nome}
                </h:column>
        </h:dataTable>
        <h:outputLabel value="Nome Autor:" for="nome_autor" />
        <h:inputText id="nome_autor" value="#{livroBean.nomeAutor}" />
        <h:commandButton value="GravarAutor" action="#{livroBean.adicionarAutor}">
            <f:ajax execute="nome_autor" render="tabela_autores"></f:ajax>
        </h:commandButton>
    </fieldset>
</h:body>

Por que o JSF não "executa" o text ao clicar no command button, quando este o inputText está fora do form? O atributo livroBean.nomeAutor não é setado

1 resposta

Oi Bruno, tudo bem ?

O problema não é o inputText , é o commandButton que não está dentro de um form.

Lembra que para fazer os setters, ele precisará fazer uma requisição onde pegará os valores do seus campos e passará para seus atributos no java, o form garante que a ação será realizada.

Espero ter ajudado.

Abraços