Pegar outcome do jsf para fazer regra de negocio

Pessoal,
o que eu to querendo fazer é um pouco complicado de explicar, pois nao sei o nome correto das coisas, mas vou tentar explicar aki o que é.

estou usando facelets + icefaces

login.jspx faz um submit pelo metodo

public class BackBean{
public String submit(){
   return "main"
}
}

esta funcionando direitinho, esta redirecionando para miha pagina main. ate aqui beleza.
como estou usando templates, tenho um menu, que deve ter opções de acordo com a pagina atual e algumas regras,sendo que cada menu esta linkado com uma opção em um back bean AcoesBean.

ex:


public class AcoesBean {
	private boolean visibleNovo;
	private boolean visibleEditar;
	private boolean visibleExcluir;
	private boolean visibleSalvar;
	private boolean visibleCancelar;

	//estou omitindo geters e seters

	public AcoesBean(){
		LoginBean loginBean = (LoginBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("loginBean");
		if(loginBean.getUsuario().equals("Administrador")){
			visibleNovo = true;
			visibleEditar= true;
			visibleExcluir= true;
			visibleSalvar= true;
			visibleCancelar= true;
		}
	}
}

no meu construtor quero mudar esta regra simples que esta ali por uma que leve em consideração a pagina solicitada.
para habilitar ou nao uma determinada ação do menu.

estava tentando buscar no contrutor da classe AcoesBean uma forma de obter ou o “outcome” ou a pagina solicitada,
cheguei a achar debugando a propriedade

FacesContext.getCurrentInstance().getExternalContext() 

as regras de navegação definidas no faces-config, mas nao consegui encontrar qual a regra que foi utilizada.

nao estou querendo setar manualmente nos botoes alguma propriedade na session com o nome da pagina destino, pois queria que esta parte ficasse “automatica”, sem ter que ser manuseada pelo programador que estiver fazendo a tela que herda a estrutura, para evitar dificuldades e problemas.

acho que consegui explicar o que eu quero, mas qualquer duvida eu tento explicar de novo

abraços

Em outras palavras, acho que vai ficar muito mais facil me fazer entender… preciso saber qual pagina do jsf esta sendo carregada, porém atraves de uma das paginas que foram incluidas no template.

aki esta meu template:
template.jspx

<?xml version="1.0" encoding="ISO-8859-1" ?>
<jsp:root version="1.2"
   xmlns:jsp="http://java.sun.com/JSP/Page"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:ice="http://www.icesoft.com/icefaces/component"
   xmlns:ui="http://java.sun.com/jsf/facelets">
   <jsp:directive.page contentType="text/html;charset=ISO-8859-1" pageEncoding="ISO-8859-1" />
   <f:view>
   		<ice:outputDeclaration 
            doctypeRoot="html" 
            doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN" 
            doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" /> 
    <html>
       <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
		<meta http-equiv="pragma" content="no-cache"/>
		<meta http-equiv="cache-control" content="no-cache"/>
		<meta http-equiv="expires" content="0"/>
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/>
		<meta http-equiv="description" content="GerProJuridico - Gerência de Processos Jurídicos"/>
		<title>GerProJuridico - Gerência de Processos Jurídicos</title>
		<link rel="stylesheet" type="text/css" href="/xmlhttp/css/xp/xp.css" />
       </head>
       <body>
           <ice:panelGrid columns="1">
	<h1>
		<ui:include src="../include/header.jspx"/>
	</h1>
	<ice:panelGroup>
	<ice:panelGrid columns="2">
	   <ice:panelGroup><ui:include src="../include/menu.jspx"/></ice:panelGroup>
	   <ice:panelGroup>
		<ice:panelGroup><ui:include src="../include/acoes.jspx"/></ice:panelGroup>
		<ice:panelGroup><ui:insert name="pageContent"/></ice:panelGroup>
		<ice:panelGroup><ui:include src="../include/acoes.jspx"/></ice:panelGroup>
	   </ice:panelGroup>
                </ice:panelGrid>
            <ice:panelGroup><ui:include src="../include/footer.jspx"/></ice:panelGroup>
            </ice:panelGroup>
        </ice:panelGrid>
       </body>
    </html>
   </f:view>
</jsp:root>

tenho o include de pagina de acoes

 <ice:panelGroup><ui:include src="../include/acoes.jspx"/></ice:panelGroup>

eu utilizo este template em varias paginas…
eu preciso descobrir em um back bean que esta no escopo request, “AcoesBean” mostrado no post anterior, qual dessas paginas que utilizam o template está sendo utilizada.

alguem consegue me ajudar ?

abraços

para os proximos que estiverem com o mesmo problema, fica aki minha solução:

após horas de debug no mesm oponto e codigo, cheguei a esta solução:

FacesContext.getCurrentInstance().getExternalContext().getRequestServletPath()

isto me retorna o servlet requisitado, que o caso do jsf é a minha pagina jspx

abraços