JSF + Action + EL

8 respostas
overkill

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 !

8 Respostas

andre_a_s

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}"/>

overkill

pois é tava fujindo disso …

mas se mais alguem tiver novidade posta ai …

mesmo assim obrigado pela resposta

overkill

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

afamorim

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

andre_a_s

No meu caso, esse problema se resolve com o Hibernate, pois no save eu tenho um “saveOrUpdate”.

overkill

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 !

afamorim

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

:stuck_out_tongue:

overkill

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

Criado 13 de novembro de 2007
Ultima resposta 13 de nov. de 2007
Respostas 8
Participantes 3