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 =)