Guardar campos formulários

5 respostas
R

Estive procurando no fórum e não achei… criei o tópico… caso haja algum relacionado me avisem…
Eu to com um dilema… eu tenho um formulário de cadastro bem grande, então ele ocupa várias páginas…
preciso guardar os campos que já foram digitados pelo usuário para que no final de todas as páginas estes dados sejam inseridos no banco de dados…
Só que há a opção do usuário retornar alguma página e alterar algum campo que já digitou… aí a página teria que carregar
os dados que já foram digitados… alguém pode me ajudar a fazer isto?!
alguma função que guarde páginas ou vou ter q guardar campo por campo?!

5 Respostas

g4j

HttpSession pode te ajudar:

http://www.jdocs.com/servlet/2.4/javax/servlet/http/HttpSession.html

D

Estou com um problema parecido.
Avanço de uma pagina para outra usando immediate=“true”, para que os campos required=“true” não atrapalhem na navegação, porém quando volto na pagina os campos que já estavam preenchidos são todos perdidos.
Se houvesse algum método, para pular a fase de validação(Phase 3: Process Validation) mas que processe a fase de atualização do modelo (Phase 4: Update Model Values) no JSF resolveria.

Se alguém tiver alguma solução, agradecemos.

2

Os dois casos podem ser resolvidos com o <a4j:keepAlive beanName=“Aqui é o controle da sua página”/>

Ele faz com que seu bean continue no request mesmo não estando mais sendo usado.

Agora de quantas páginas estamos falando? Não acho uma boa prática dividir um cadastro em páginas, você poderia dividir esse cadastro em páginas sim, mas todas sendo incluídas em uma página principal com o <jsp:include page=""/>. Sendo assim você terá apenas um controle, e pode simular a troca de páginas usando a opção rendered dos painéis. É assim que eu uso, fica muito mais rápido e organizado, e acaba com esse tipo de problema.

Mesmo assim o keepAlive é necessário.

D

Vc teria um pequeno trecho de codigo so pra mim ver como usar o <a4j:keepAlive beanName=“Aqui é o controle da sua página”/>
Achei interessante este comando, mas so estou com duvida se devo usar esta tag em todos os componentes ou delimitar os componentes dentro desta tag.
Obrigado

2

Então, essa tag é usada no começo da página JSP, fora da view ou subview. Vou te mostrar um exemplo:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>

<a4j:keepAlive beanName="controleDaPagina" />

<html>
    <head>
        <title>Página de Teste</title>
    </head>
    <body>
        <f:view>

                 Estrutura da sua página!

        </f:view>
    </body>
</html>

Está aí. A tag keepAlive só é colocada no início, e ela diz para o ciclo de vida do JSF que o controle dessa página sobreviverá a mais uma requisição (ele vai trabalhar como um Bean de session mesmo sendo request enquando estiver sendo acessado), depois ele morrerá.

Espero que tenha sido claro, qualquer dúvida estamos aí. t+

Criado 5 de setembro de 2008
Ultima resposta 9 de set. de 2008
Respostas 5
Participantes 4