[removido]

[removido]

vc tem duas paginas que utilizam o mesmo managedBean, é isso?

[removido]

eu precisei utilizar uma vez o mesmo managedBean apenas para não fazer outro com poucas alterações.
eu fiz assim, criei uma variável int no managedBean que iria armazenar esse tipo, 0 ou 1.
ficou assim:
no link de uma pagina

<f:setPropertyActionListener target="#{clienteMB.tipoCliente}" value="0" />

e na outra

<f:setPropertyActionListener target="#{clienteMB.tipoCliente}" value="1" />

e no set dessa variavel no MB
ficou assim

public void setTipoCliente(int tipoCliente) {
		if(tipoCliente==0){
			//precliente
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("precliente", true);
		}else{
			//cliente
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("precliente", false);
		}
	}

ai qndo precisei ver qual pagina chamou eu utilizei o

FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("precliente");

não sei se foi uma boa forma, mas deu certo.

[removido]

[removido]

cola ai o commandButton ou o commandLink q vc chama essa pagina.

[removido]

com botão criado dinâmico tem que pensar em outra forma,
e como vc utiliza template caso vc faça um getRequestURI vai apontar para o template e não vai passar o link que chamou… caso vc esteja usando algum filtro talvez apareça a URI.
faça um teste, ponha isso no construtor do seu MB
e veja o resultado:

HttpServletRequest origRequest = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		origRequest.getRequestURI();
		origRequest.getRequestURL().toString();

[removido]