Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Retornar a página livro.xhtml

Bom dia,

Minha dúvida é a respeito da possibilidade de retornar a página da chamada após gravar o autor. Assim, o formulário seria reutilizado por outras páginas quando necessário. Mas caso a página de cadastro do autor não fosse chamada por outra, após a gravação continuaríamos na pagina autor.xhtml. Como ficaria esse código?

3 respostas

Oi Osmar, não entendi o que você precisa. Pode dar um exemplo com código?

solução!

Fala Osmar, boa tarde.

é possivel fazer isso sim de algumas formas.

Acredito que a mais fácil seja criar um novo ManagedBean que seja SessionScoped e que vai guardar a sua página atual (que vai ser a página que vai chamar autor) e a página para onde vc vai. Na action do seu commandLink, no lugar de redirecionar direto vc vai chamar o método desse novo MB que vai te direcionar para "página que vc quer ir" e guardar "da onde vc veio".

No lugar de:

<h:commandLink value="ou cadastrar novo autor" action="autor?faces-redirect=true" />

Você chama o metodo do NovoBean:

<h:commandLink value="ou cadastrar novo autor" action="#{redirecionaBean.redireciona(request.requestURL, autor) />

O primeiro parametro, request.requestURL, vai guardar a página que vc está e "autor" é a página que vc quer ir.

No seu novo Managed Bean:

@ManagedBean
@SessionScoped
public class RedirecionaBean(){
    private String urlDaOndeVim;
    private String urlParaOndeVou;

    public String redireciona(String daondevim, paraondevou){
        this.urlDaOndeVim = daondevim.substring(daondevim.lastIndexOf("/") + 1, daondevim.length() - 6);
        this.urlParaOndeVou = parandevou;
        return urlParaOndeVou + "?faces-redirect=true"; 
    }

    public String redirecionaParaQuemChamou(){
        return urlDaOndeVim + "?faces-redirect=true"; 
    }

    //getters e setters
}

o substring a cima é apenas para pegar o nome da página sem ".xhtml" e sem "http://localhost:8080/livraria/"

na sua página autor.xhtml vc chama o método redirecionaParaQuemChamou() desse novo Bean.

mas pessoalmente acredito que não seja uma boa ideia fazer isso porque talvez o usuário queira continuar na página para fazer mais uma inclusão ou alteração em outro autor, o que poderia ser solucinado com um menu que será abordado mais pra frente no curso.

Espero ter ajudado =)

Blz. Era isso mesmo que eu estava precisando. Obrigado!!