Problemas com componente outputPanel do primeFaces

Boa tarde Galera, estou com um problema com o componente outputPanel,
quando incluo ele na tela as operações no bean, param de funcionar.

<h:form id="campos">
			<p:outputPanel rendered="#{cstPisCofinsBean.cadastro}">
				<h:messages styleClass="erros" />
				<h2>
					<h:outputText value="Editando CST-PIS/COFINS"
						rendered="#{not empty cstPisCofinsBean.cst.cst}" />
					<h:outputText vralue="Cadastrando CST-PIS/COFINS"
						rendered="#{empty cstPisCofinsBean.cst.cst}" />
				</h2>
				<h:outputLabel value="CST:" for="cst" />
				<h:inputText id="cst" value="#{cstPisCofinsBean.cst.cst}"
					required="true" />
				<h:outputLabel value="Descricao:" for="descricao" />
				<h:inputText id="descricao"
					value="#{cstPisCofinsBean.cst.descricao}" required="true"
					size="100" />
				<h:panelGrid columns="2" width="100%">
					<h:commandButton value="Gravar" action="#{cstPisCofinsBean.grava}">
						<f:ajax render=":campos :tabela" execute=":campos" />
					</h:commandButton>
					<h:commandButton value="Cancelar"
						action="#{cstPisCofinsBean.limpaFormulario}" immediate="true">
						<f:ajax render=":campos :tabela" execute=":campos" />
					</h:commandButton>
				</h:panelGrid>
			</p:outputPanel>
		</h:form>

Obrigado pela Atenção…

Boa tarde bergwin,
Já que está utilizando o PrimeFaces, poderia utilizar o <p:commandButton /> ae não precisaria do <f:ajax …

Obrigado pela resposta, então já fiz a mudança e ficou na mesma,
se tiro o outputPanel funciona perfeitamente.

Só pra entender, qual seria a necessidade de utilizar o utputPanel do prime?

troque o outputPanel por panel

<p:panel>

Obrigado pela dica, mais continua na mesma
tambem tirei o panelGrid, pra fazer um teste

		<h:form id="campos">
			<p:panel rendered="#{cstIcmsBean.cadastro}">
				<h:messages styleClass="erros" />
				<h2>
					<h:outputText value="Editando ICMS"
						rendered="#{not empty cstIcmsBean.cst.cst}" />
					<h:outputText vralue="Cadastrando ICMS"
						rendered="#{empty cstIcmsBean.cst.cst}" />
				</h2>
				<h:outputLabel value="CST:" for="cst" />
				<h:inputText id="cst" value="#{cstIcmsBean.cst.cst}" required="true" />
				<h:outputLabel value="Descricao:" for="descricao" />
				<h:inputText id="descricao" value="#{cstIcmsBean.cst.descricao}"
					required="true" size="100" />
				<p:commandButton value="Gravar" action="#{cstIcmsBean.grava}"
					update=":campos :tabela" />

				<p:commandButton value="Cancelar"
					action="#{cstIcmsBean.limpaFormulario}" immediate="true"
					update=":campos :tabela">
				</p:commandButton>
			</p:panel>
		</h:form>

Pelo que estou percebendo, quando está dentro do panel ou outputPanel, não funcioa as Expression language…

Alguem ja passou por isso?

Ta agora vem minha afirmacao, nao entendi qual o seu problema:

O que seria param de funcionar ? Incluir ele na tela como ?

Então…o bean não carrega as variaveis do cadastro e não excuta o metodo grava.
Eu fiz um teste e tirei os botoes do outputPanel, ai a variavel do cadastro fica null

Obrigado pela atencao

Melhor postar o codigo todo da sua pagina, porque so esse trecho do seu codigo aparentemente nao esta errado.

Segue o Codigo da pagina

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
<ui:composition template="/_template.xhtml">
	<ui:define name="corpo">
		<h:form id="campos">
				<h:messages styleClass="erros" />
				<h2>
					<h:outputText value="Editando ICMS"
						rendered="#{not empty cstIcmsBean.cst.cst}" />
					<h:outputText vralue="Cadastrando ICMS"
						rendered="#{empty cstIcmsBean.cst.cst}" />
				</h2>
				<h:outputLabel value="CST:" for="cst" />
				<h:inputText id="cst" value="#{cstIcmsBean.cst.cst}" required="true" />
				<h:outputLabel value="Descricao:" for="descricao" />
				<h:inputText id="descricao" value="#{cstIcmsBean.cst.descricao}"
					required="true" size="100" />
				<p:commandButton value="Gravar" action="#{cstIcmsBean.grava}"
					update=":campos :tabela" />

				<p:commandButton value="Cancelar"
					action="#{cstIcmsBean.limpaFormulario}" immediate="true"
					update=":campos :tabela">
				</p:commandButton>
		</h:form>
		<h2>Listagem de CST-ICMS</h2>
		<p:commandButton value="Novo" rendered="#{not cstIcmsBean.cadastro}"
			update=":campos :tabela">
			<f:setPropertyActionListener target="#{cstIcmsBean.cadastro}"
				value="#{true}">
			</f:setPropertyActionListener>
		</p:commandButton>
		<h:form id="tabela">
			<p:dataTable id="grid" var="cst" value="#{cstIcmsBean.lista}"
				paginator="true" rows="10"
				paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
				rowsPerPageTemplate="5,10,15" selectionMode="single"
				selection="#{cstIcmsBean.cst}" lazy="true" styleClass="dados"
				rowClasses="impar,par">
				<p:column headerText="cst Icms" sortBy="#{cst.cst}"
					filterBy="#{cst.cst}" style="width:20%" filterStyle="width:40%">
					<h:outputText value="#{cst.cst}" />
				</p:column>

				<p:column headerText="Descricao" sortBy="#{cst.descricao}"
					filterBy="#{cst.descricao}" style="width:60%"
					filterStyle="width:80%">
					<h:outputText value="#{cst.descricao}" />
				</p:column>
				<p:column headerText="Ações" style="width:10%">
					<p:commandLink actionListener="#{cstIcmsBean.remove(cst)}"
						value="Remover" update="grid">
					</p:commandLink>
				-
					<p:commandLink value="Alterar" update=":campos :tabela ">
						<f:setPropertyActionListener target="#{cstIcmsBean.cst}"
							value="#{cst}">
						</f:setPropertyActionListener>
					</p:commandLink>
				</p:column>
			</p:dataTable>
		</h:form>
	</ui:define>
</ui:composition>
</html>

Numa lida rapida, primeira coisa:

<h2>Listagem de CST-ICMS</h2>  
        <p:commandButton value="Novo" rendered="#{not cstIcmsBean.cadastro}"  
            update=":campos :tabela">  
            <f:setPropertyActionListener target="#{cstIcmsBean.cadastro}"  
                value="#{true}">  
            </f:setPropertyActionListener>  
        </p:commandButton>  

É bom sempre por os commandButtons dentro das tags <h:form>

Bote ele dentro de algum form primeiramente.

Acabei de fazer essa alteração, e continuo na mesma…

Obrigado!

Tenso, mano, seguinte, surgiu umas coisas pra fazer aqui, vou ficar ocupadao agora, vou tentar voltar mais tarde pra te ajudar, caso voce nao consiga.

Abraços.

  • Ei amigo, você conseguiu resolver esse problema ??? Porque estou passando por isso utilizando prime faces 3.5 com o recurso de TabView. O estranho que na primeira tab tudo funciona mas para a segunda onde ela depende de linhas selecionadas da primeira , a EL referente uma var que possuo no managed bean não atualiza …
  • Se você conseguiu resolver posta aí solução para nos ajudar. T+.

Bom dia…cara faz tempo, mais eu lembro que atualizei o JSF, da uma conferida no esqueleto da pagina, e eu troquei o outputPanel para um panel.

qualquer coisa posta o código ai

abraços

  • Olá amigo. Já adentrando a madrugada de ontem (11/07/2012) para hoje (12/07/2013) também consegui resolver meu problema. Os componentes estão trabalhando 100% conforme prometido pelo desenvolvedor do primefaces. O erro estava na atualização de uma variavel no carregamento do meu modelo vinculado a uma das minhas DataTable filhas , dependente da DataTable mãe. Resumindo: um erro meu de lógica. Obrigado pelo retorno. T+.

Fico feliz de vc ter resolvido… abraços!!