Como mostrar um menu diferente de acordo com a regra do usuário usando o Tile3

Estou usando tile3, spring security e struts2. Eu tenho um número diferente de usuários, cada um com um papel específico, e cada função deve ter acesso a um menu específico, eu tenho o seguinte arquivo tile.xml, mas não tenho certeza de como alterá-lo de maneira a resolver o problema.

Por favor, deixe-me saber se você precisa de mim para fornecer qualquer outra parte do meu código.

<tiles-definitions>
    <definition name="baseLayout" template="/baseLayout.jsp">
        <put-attribute name="title"  value=""/>
        <put-attribute name="header" value="/header.jsp"/>
        <put-attribute name="menu" value=""/>
        <put-attribute name="body"   value=""/>
        <put-attribute name="footer"   value="/footer.jsp"/>
        <put-attribute name="register"  value="/register.jsp"/>
    </definition>

    <definition name="register1" extends="baseLayout">
        <put-attribute name="menu"   value="/menuAdmin.jsp"/>  
        <put-attribute name="body" value="/body.jsp"/>
    </definition>
    <definition name="register2" extends="baseLayout">
        <put-attribute name="menu"   value="/menuUser.jsp"/>  
        <put-attribute name="body" value="/body.jsp"/>    
     </definition>
       .....

Como meu aplicativo tem muitas páginas diferentes, eu preciso criar uma definição separada para cada solicitação para cada função do usuário. Por exemplo, deve haver apenas uma definição chamada register e o atributo de menu deve ser alterado dinamicamente com base na função de solicitante ou em qualquer outra forma de torná-lo mais simples.

Eu estou usando o seguinte para definir as seções acessíveis para cada função

<http auto-config="true" access-denied-page="/notFound.jsp" use-expressions="true">
    <intercept-url pattern="/Profile/view*" access="hasRole('ROLE_ADMIN')" /> 
    <intercept-url pattern="/Search/view*" access="hasRole('ROLE_ADMIN')" /> 
    <form-login login-page="/index" 
                authentication-failure-url="/index?error=1"
                default-target-url="/default"/> 
     <logout logout-success-url="/index.jsp"/>
</http> 

Eu posso usar o seguinte código para encontrar a função do usuário logado

 @Action
 public class Default {
    public String execute(){
        String role =    
        SecurityContextHolder.getContext().getAuthentication().getAuthorities().toString();
        System.out.println("User's role:"+role);
        if(role.equalsIgnoreCase("[ROLE_ADMIN]"))
            return "Admin";
        return "";


    }

}

questionAnswers(1)

yourAnswerToTheQuestion