Cómo mostrar diferentes menús según la regla del usuario usando Tile3

Estoy usando tile3, spring security y struts2. Tengo un número diferente de usuarios, cada uno con un rol específico, y cada rol debe tener acceso a un menú específico, tengo el siguiente archivo tile.xml, pero no estoy seguro de cómo cambiarlo para resolver el problema.

Por favor, avíseme si necesita que proporcione cualquier otra parte de mi 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 mi aplicación tiene muchas páginas diferentes, tengo que crear una definición separada para cada solicitud para el rol de cada usuario. Por ejemplo, solo debe haber una definición llamada registro y el atributo de menú debe cambiar dinámicamente según la función del solicitante, o cualquier otra forma para simplificarlo.

Estoy usando lo siguiente para definir las secciones accesibles para cada rol

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

Puedo usar el siguiente código para encontrar el rol de usuario registrado

 @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 "";


    }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta