Jsf -alterar dados

3 respostas
T

boa tarde a todos.

estou utilizando jsf.

tenho uma tela para exibir os dados, vindos do banco, através da tag dataTable do richfaces. na tabela tenho uma coluna, com um commandLink, que abre um outro formulário para a edição dos dados.

mas tenho o seguinte problema, quando uma pessoa edita um determinado item, se outra pessoa for editar o mesmo item, as alterações que a primeira pessoa realizou são visualizadas pela pessoa que tenta editar esse mesmo item. (mas as informações ainda não foram salvas).

o managed bean está configurado como session, se altero ele para request, ao tentar editar o item(na tela que exibe os dados) nada acontece.

alguém pode ajudar?

obrigado.

3 Respostas

D

Veja se isso resolve o seu problema:

1° Antes de qualquer coisa, dê uma lida no link logo abaixo para ver se resolve o que você quer…
http://www.rponte.com.br/2007/10/14/state_saving_method-server-ou-client/

Caso não resolva, segue um exemplo prático.

2° Coloque seu Bean para request.

3° No jsp adicione o código abaixo no jsp:
<t:saveState id=“idBeanTabelaTarifaListagem” value="#{tabelaTarifaListagemFaces}" />

Obs.:
tabelaTarifaListagemFaces - bean

4° Utilizando…

Ex.: O código informado logo abaixo é a parte(do código) de apenas 1 coluna do componente <t:dataTable>.

<t:column styleClass=“colunaPesquisa”>

<f:facet name=“header”>

<t:commandButton id=“botaoNovo” forceId=“true” action="#{tabelaTarifaCadastroFaces.novo}" image="…/images/novo.gif" />

</f:facet>

<t:commandButton action="#{tabelaTarifaListagemFaces.excluir}" id=“linkExcluir” forceId=“true” image="…/images/excluir.gif" onclick=“return confirmar(‘Confirmar Exclusão do Registro?’);”>

<t:updateActionListener property="#{tabelaTarifaListagemFaces.tabelaTarifa.id}" value="#tabelaTarifa.id}" />

</t:commandButton>

<t:commandButton action="#{tabelaTarifaCadastroFaces.editar}" id=“botaoEditar” forceId=“true” image="…/images/editar.gif">

<t:updateActionListener property="#{tabelaTarifaCadastroFaces.tabelaTarifa.id}" value="#tabelaTarifa.id}" />

</t:commandButton>

</t:column>

Obs.:
tabelaTarifaListagemFaces - bean
tabelaTarifaCadastroFaces - bean
tabelaTarifaCadastroFaces.tabelaTarifa - DTO do bean
tabelaTarifaCadastroFaces.tabelaTarifa.id - Atributo do DTO do bean

Caso você queira saber como funciona a passagem dos parâmetros para as Actions do JSF utilizando o componente <t:updateActionListener>, leia o tópico “Passagem para parâmetros para actions do JSF” do link a seguir:
http://faces.eti.br/category/components/

Javabuntu

você está usando RichFaces… só lembrando que a dica que foi dada acima é do MyFaces Tomahawk…

T

alguém nunca passou por um caso assim?

estou estudando jsf, já procurei bastante e ainda não achei nenhuma resposta.

pelo que entendi o jsf que vai gerenciar a session. para cada brownser aberto, uma nova session será criada, e o menage bean para a session também será criado, não existindo conflito entre os mb, que estão em session separadas. ou o mb fica no container e é compartilhado entre as session.

alguém poderia me esclarecer melhor isso?

obrigado.

Criado 13 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 3
Participantes 3