[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]