Struts2 如何根据用户使用Tile3的规则显示不同的菜单

Struts2 如何根据用户使用Tile3的规则显示不同的菜单,struts2,spring-security,tiles,Struts2,Spring Security,Tiles,我正在使用tile3、spring security和struts2。我有不同数量的用户,每个用户都有特定的角色,每个角色都应该可以访问特定的菜单,我有下面的tile.xml文件,但我不知道如何更改它以解决问题 请让我知道,如果你需要我提供我的代码的任何其他部分 <tiles-definitions> <definition name="baseLayout" template="/baseLayout.jsp"> <put-attribut

我正在使用tile3、spring security和struts2。我有不同数量的用户,每个用户都有特定的角色,每个角色都应该可以访问特定的菜单,我有下面的tile.xml文件,但我不知道如何更改它以解决问题

请让我知道,如果你需要我提供我的代码的任何其他部分

<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>
       .....
使用以下命令

 <put-attribute name="header" expression="OGNL:@com.project.Default@getRole() + '.jsp'"/>


如何访问角色?它可以从会话对象访问吗?进一步考虑基于角色的安全性,通常用户被分配多个角色。为了简化问题,我假设用户被分配了一个角色。@Quaternion我已经更新了问题,我需要您在struts2操作中输入的代码,该操作将显示特定用户的角色。有了它,我们可以做一些有趣的事情。@Quaternion问题现在更新了删除Spring安全性,测试瓷砖是否正常工作。。。如果struts2瓷砖集成良好。。。然后您可能需要Antonio(tiles邮件列表)的帮助。Tiles能够直接在配置中测试角色。这是使用基于JEE角色的安全性,这对他来说是个好问题,我一直想问的一个问题是,您是否可以覆盖他们从自定义提供者(如Spring security)查找角色的方法
 @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 "";


    }

}
 <put-attribute name="header" expression="OGNL:@com.project.Default@getRole() + '.jsp'"/>