Isso deveria funcionar ??
<h:commandButton value=“Salvar” action="#{bean.editMode ? bean.update : bean.add}" />
se eu colocar a EL no value funciona bem mas no action da erro .
Abraços !
Isso deveria funcionar ??
<h:commandButton value=“Salvar” action="#{bean.editMode ? bean.update : bean.add}" />
se eu colocar a EL no value funciona bem mas no action da erro .
Abraços !
Bom… um jeito não muito elegante, mas que funciona:
<h:commandButton value="Salvar" action="#{bean.update}" rendered="#{bean.editMode}"/>
<h:commandButton value="Salvar" action="#{bean.add}" rendered="#{not bean.editMode}"/>
pois é tava fujindo disso …
mas se mais alguem tiver novidade posta ai …
mesmo assim obrigado pela resposta
eles estao dentro do panelGrid essa parte estou ligado eles estao dentro do panelGrid com id=“off”
entao por default eu carrego este cara
<h:panelGrid id=“off” >
.
.
.
<a4j:commandButton id=“grava” value=“Gravar” rendered="#{not userBean.read}" reRender=“userList” action="#{userBean.gravar}"/>
A variavel rendered esta false … ou seja ele vem ativo por default
rendered="#{not userBean.read}" vem false
abaixo o outro componente (Atualizar)
<a4j:commandButton id=“atualiza” value=“Atualizar” rendered="#{userBean.read}" reRender=“userList” action="#{userBean.atualiza}"/>
…
abaixo disso tem tableData
onde tem um <a4j:commandoLink que muda a varivel para true e ativa o reRendere=“off” rederizando o panelGrid ai em cima fazendo com que o gravar suma e apareca o atualizar mudando o status para true
rendered="#{not userBean.read}" vem true
até aqui tudo funciona … mas o botao atualizar nao funciona o action ele nao chama nada fica um botao sem acao entende ??
<a4j:commandButton id=“atualiza” value=“Atualizar” rendered="#{userBean.read}" reRender=“userList” action="#{userBean.atualiza}"/>
acho que agora fica mais facil entender heheh
Dai pensei no IF com EL no action direto !!!
mas acho que nao vai pra frente …
Abraços
Meu velho, uma coisa que eu faço e sempre evitou dor de cabeça é ter o metodo, salvar e nele verifico se o salvar é para cadastro ou atualização.
pois geralmente as telas que fazem cadastro, são as mesmas que atualizam
No meu caso, esse problema se resolve com o Hibernate, pois no save eu tenho um “saveOrUpdate”.
Pelo que tive vendo aqui o IF desse modo com EL so funciona no value mesmo no action nao funciona o jeito é fazer um saveOrUpdate como o amigo Citou !
Abraço !
Meu amigo, so tome o cuidado com o seguinte, como você vai utilizar o mesmo fluxo para fazer insert ou update, você pode vim a se bater quando precisar que a regra de negocio seja diferente a depender do que esteja aconetendo.
Acredito que até o metodo na sua classe de banco pode ser o mesmo, mais ainda assim defendo metodos diferentes na sua regra de negocio, ate mesmo porque quando acontecer, você não vai ter que mudar o padrão que a aplicação segue.
espero ter ajudado

todo o comentario de alguem mais esperiente é valido sim ,
to pensando em usa ro f:param para dizer se é atualizacao ou insercao tratando no bean apontado no action, assim tenho tudo separadinho sem complicacao !!
Abraço