bergwin
Fevereiro 7, 2013, 3:58pm
#1
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…
rjbn_
Fevereiro 7, 2013, 4:14pm
#2
Boa tarde bergwin,
Já que está utilizando o PrimeFaces, poderia utilizar o <p:commandButton /> ae não precisaria do <f:ajax …
bergwin
Fevereiro 7, 2013, 4:20pm
#3
Obrigado pela resposta, então já fiz a mudança e ficou na mesma,
se tiro o outputPanel funciona perfeitamente.
rjbn_
Fevereiro 7, 2013, 4:29pm
#4
Só pra entender, qual seria a necessidade de utilizar o utputPanel do prime?
troque o outputPanel por panel
<p:panel>
bergwin
Fevereiro 7, 2013, 4:45pm
#6
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>
bergwin
Fevereiro 7, 2013, 4:49pm
#7
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:
Boa tarde Galera, estou com um problema com o componente outputPanel,
quando incluo ele na tela as operações no bean, param de funcionar.
O que seria param de funcionar ? Incluir ele na tela como ?
bergwin
Fevereiro 7, 2013, 5:25pm
#9
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.
bergwin
Fevereiro 7, 2013, 5:32pm
#11
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.
bergwin
Fevereiro 7, 2013, 5:47pm
#13
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.
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
Fico feliz de vc ter resolvido… abraços!!