setPropertyActionListener

è a segunda vez que posto sobre isso ainda naum consegui resolver o problema pesso ajuda para desse resolver isso


<h:body>
        <c:view>
            <div id="bannerPag">
                <f:insert name="bannerPag">
                    <f:include src="../banner/banner.xhtml" />
                </f:insert>
            </div>

            <div class="container" style="padding-top: 80px;">
                <div class="row" id="menuApp">
                    <f:insert>
                        <f:include src="../menus/menuUserAdm.xhtml"/>
                    </f:insert>
                </div>

                <h:form styleClass="form-horizontal well" style="margin-left: -20px;">
                    <fieldset>
                        <legend>Lista de Combustiveis</legend>

                        <br /><br />

                        &lt;p:dataTable var="comb" value="#{combustivelController.listaCombustiveis}" 
                                     paginator="true" rows="10" 
                                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
                                     {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"&gt;

                            &lt;p:column&gt;
                                &lt;c:facet name="header"&gt;
                                    Combustivel
                                &lt;/c:facet&gt;
                                &lt;h:outputText value="#{comb.dsCombustivel}" /&gt;
                            &lt;/p:column&gt;

                            &lt;p:column&gt;
                                &lt;f:fragment rendered="true"&gt;
                                    &lt;p:commandLink value="Editar" oncomplete="panelEditar.show();" update=":formCadCombustivel:outputPnl"&gt;
                                        &lt;c:setPropertyActionListener value="#{comb}" 
                                                                     target="#{combustivelController.combustivel}" /&gt;
                                    &lt;/p:commandLink&gt;
                                &lt;/f:fragment&gt;

                            &lt;/p:column&gt;

                            &lt;p:column&gt;
                                &lt;p:commandLink value="Excluir" oncomplete="panelExcluir.show();"&gt;
                                    &lt;c:setPropertyActionListener value="#{comb}" 
                                                                 target="#{combustivelController.combustivel}" /&gt;
                                &lt;/p:commandLink&gt;
                            &lt;/p:column&gt;
                        &lt;/p:dataTable&gt;

                        &lt;p:dialog modal="true" header="Excluir" showEffect="fade" hideEffect="explode" 
                                  widgetVar="panelExcluir"&gt;

                            &lt;div class="form-inline"&gt;
                                &lt;h:outputLabel value="Quer excluir o combustivel "/&gt;
                                &lt;h:outputLabel value="#{combustivel.dsCombustivel}"/&gt;
                                &lt;h:outputLabel value=" ?" /&gt;
                            &lt;/div&gt;

                            &lt;div class="form-actions"&gt;
                                &lt;p:commandButton styleClass="btn btn-danger" value="Sim" type="button" /&gt;
                                &lt;p:commandButton styleClass="btn btn-primary" value="Não"
                                                 type="button" onclick="panelExcluir.hide();"
                                                 style="margin-left: 20px;"/&gt;
                            &lt;/div&gt;
                        &lt;/p:dialog&gt;

                        &lt;p:dialog modal="true" header="Editar" showEffect="fade" hideEffect="explode" 
                                  widgetVar="panelEditar" id="panelEditar"&gt;
                            &lt;f:include src="../cadastros/forms/formCadCombustivel.xhtml"/&gt;
                        &lt;/p:dialog&gt;
                    &lt;/fieldset&gt;
                &lt;/h:form&gt;

                &lt;div&gt;
                    &lt;f:include src="../footer.xhtml"/&gt; 
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/c:view&gt;
    &lt;/h:body&gt;

codigo form

 &lt;h:body&gt;
        &lt;f:composition&gt;
            &lt;h:form styleClass="well form-horizontal" id="formCadCombustivel" style="margin-left: -20px;"&gt;
                &lt;p:outputPanel id="outputPnl" &gt;
                    &lt;fieldset&gt;
                        &lt;legend&gt;Cadastro Combustivel&lt;/legend&gt;

                        &lt;p:growl id="growl" showDetail="true" sticky="true" life="10000"/&gt;

                        &lt;div class="control-group" style="padding-top: 40px;"&gt;
                            &lt;h:outputLabel value="Combustível" styleClass="control-label" /&gt;
                            &lt;div class="controls"&gt;
                                &lt;p:inputText required="true" requiredMessage="Campo Combustível é requerido" 
                                             styleClass="input input-large" 
                                             value="#{combustivelController.combustivel.dsCombustivel}" /&gt;
                            &lt;/div&gt;

                        &lt;/div&gt;

                        &lt;div class="form-actions" style="margin-top: 60px;"&gt;
                            &lt;p:commandButton type="submit" value="Salvar" styleClass="btn btn-primary" 
                                             update="@form @this growl" 
                                             actionListener="#{combustivelController.salvarCombustivel()}"/&gt;
                            &lt;p:commandButton type="reset" value="Limpar" styleClass="btn" 
                                             style="margin-left: 20px;"/&gt;
                        &lt;/div&gt;
                    &lt;/fieldset&gt;
                &lt;/p:outputPanel&gt;
            &lt;/h:form&gt;
        &lt;/f:composition&gt;
    &lt;/h:body&gt;

Quero que quando o usuario clique no link editar apareca o dialog com o form preenchido o usuario altera e salva mas naum consiguo fazer, ja tentei de tudo, qualquer dica sera salvadora obirigado

I aew kra blza!? sou novo ainda em desenvolvimento web e tb passei por um problemas desses segue a dica da chamada de um Dialog com os dados para edição, que com muita luta consegui resolver.

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./template.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui">

    <ui:define name="header">
        <title>Lista de Usuários</title>
    </ui:define>

    <ui:define name="conteudo">
        <h:form id="form">
        	<p:dataTable id="dataTable" var="usuario" value="#{usuarioBean.usuarios}" paginator="true" rows="6" emptyMessage="Nenhum cadastro encontrado!" >
                <f:facet name="header">Lista de Usuários</f:facet>
                
                <p:column headerText="Código" sortBy="#{usuario.id}" filterBy="#{usuario.id}" style="width: 100px">
                    <h:outputText value="#{usuario.id}" />
                </p:column>
                
                <p:column headerText="Login" sortBy="#{usuario.login}" filterBy="#{usuario.login}">
                    <h:outputText value="#{usuario.login}" />
                </p:column>    
                
                <p:column headerText="Ações">
                	<p:commandLink oncomplete="dlgEditar.show()" update=":form:frmEditar" process="@this">
               			<f:setPropertyActionListener value="#{usuario}" target="#{usuarioBean.usuarioEditar}" />
               			<h:outputText value="Editar" />
                	</p:commandLink>
                </p:column>            
            </p:dataTable>
            
            <p:commandButton value="Novo Usuário" action="#{usuarioBean.novoCadastro}" title="Adicionar um novo usuário">
            	<p:graphicImage value="/img/adicionar_pessoa.png" title="Adicionar um novo usuário" width="50px;"/>
            </p:commandButton>
            
            <p:dialog header="Edição de Usuário" widgetVar="dlgEditar" resizable="false" modal="true" width="400">
				<p:outputPanel id="frmEditar">
					<p:messages id="msg"/>
					<h:panelGrid columns="3">
						<h:outputText value="Código:" />
						<p:inputText id="id" value="#{usuarioBean.usuarioEditar.id}" disabled="true" />
						<p:message for="id" />

						<h:outputText value="Login:" />
						<p:inputText id="login" value="#{usuarioBean.usuarioEditar.login}"
							required="true" requiredMessage="Informe o seu login!" />
						<p:message for="login" />

						<h:outputText value="Senha:" />
						<p:inputText id="senha" value="#{usuarioBean.usuarioEditar.senha}"
							required="true" requiredMessage="Informe sua senha!"
							redisplay="true" />
						<p:message for="senha" />
					</h:panelGrid>
				</p:outputPanel>
				<br />
				<p:commandButton value="Salvar" actionListener="#{usuarioBean.editar}" icon="ui-icon-disk" update=":form:dataTable,:form:msg"/>
				<p:commandButton value="Sair" onclick="dlgEditar.hide()" icon="ui-icon-close" />
			</p:dialog>
            
        </h:form>
    </ui:define>

</ui:composition>

um detalhe importante foi o uso do process="@this" e claro o update=":form:frmEditar". Seguindo este estilo vc concerteza consegue realizar sua edição!

Isso amigo funconou agora, mas me diz mais uma coisa, quando abri o dialog ele naum pego os estilos que defini, saberia porque?

Obrigado.

Que bom q funcionou kra, agora em questão dos estilos aew ja naum sei lhe ajudar! :frowning:

Vou pesquisar sobre isso, o pior jah conseguimos resolver :smiley:

isso aew, eh apanhando q aprendemos… tow sofrendo muito tb nisso rs mais vamos batendo q chegamos lah

So mais uma duvida se voce poder me ajudar, quando eu clico no botao que esta dentro do dialog nao executa a funcao do bean associado a ela saberia o que pode estar havendo?

<div class="form-actions" style="margin-top: 60px;">  
               <p:commandButton type="submit" value="Salvar" styleClass="btn btn-primary"   
                                            update="@form @this growl"   
                                            actionListener="#{combustivelController.salvarCombustivel()}"/>  
               <p:commandButton type="reset" value="Limpar" styleClass="btn"   
                                            style="margin-left: 20px;"/>  
</div> 

Estranho kra, pq isso eh bem simples, pelo q estou vendo era pra dar certo. mais teste tirando o type=“submit” e tambem teste o metodo sem os (), deixe actionListener="#{combustivelController.salvarCombustivel}" tirando o () no final do metodo.

Kara nem o reset naum funciona fiz o que vc falo mas nada de funciona, alguma coisa que eu possa fazer?

[size=18] [/size]
To com problema na form que eu importa na minha pagina ele naum invoca o metodo de salvar o objeto o reset esta funcionando de boa mas o botao salvar naum esta funcionando alguem porderia me ajudar com isso?

Cristian, dá uma olhada se o seu dialog tem um form pra ele. Veja se pode estar dando algum erro de validação na hora do save. Você manda redesenhar o h:messages nesse botao?

Abraço

Tem um form e tem growl do primafaces mas a validação ta ok, pois é um campo so e este jah esta preenchido por se tratar de atualização de registros, e o que sera que pode estar afetando a tela e naum atualiza o registro.

Se tiver usando o chrome, dá um Ctrl+Shift+i e clica na aba Console pra ver se tá rolando algum erro javascript.

O JSF tem 6 fases no seu ciclo de vida. A fase que chama os métodos do seu bean é a 5 (Invoke Application). Se não está chegando lá provavelmente está dando algum erro nas fases anteriores. Na fase 3 (Process Validation) é comum dar algum erro de validação ou conversão. Quando isso acontece, você tem um sintoma como esse que você tá tendo.

A propósito, você tem algum converter no campo do seu form? Está apontando para um tipo equivalente?

A aba console esta em branco, naum tem nada, a propsito sobre os convertes por enquanto naum precisei usar nenhum, e o que voce acha que pode ser ?

Se o value do seu campo aponta para um objeto, você precisa de um converter. É o seu caso?

&lt;div class="control-group" style="padding-top: 40px;"&gt;
                            &lt;h:outputLabel value="Combustível" styleClass="control-label" /&gt;
                            &lt;div class="controls"&gt;
                                &lt;p:inputText required="true" requiredMessage="Campo Combustível é requerido" 
                                             styleClass="input input-large" 
                                             value="#{combustivelController.combustivel.dsCombustivel}" /&gt;
                            &lt;/div&gt;

Esse é o form que é usado na tela, o value do campo aponta para uma propriedade string por isso naum usei nenhum tipo de converter, so esta dando problema de naum salvar quando importo o xhtml dele dentro de um dialog do primefaces, quando importo dirento na pagina para fazer o cadastro funciona de boa e aplica o css, que quando é no dialog tambem naum aplica os css nos commandButtons

Boa Noite Amigos,

Estou com o mesmo problema inicial que foi abordado, antes meu Dialog nem abria mas segui os passos e o mesmo já está funcionando, porém gostaria de saber como deveria ficar o ManagerBean pois mesmo abrindo o Dialog e os dados não são mostrados.

Grato!