Tags 在struts2标记中使用xx.contain(xxx)

Tags 在struts2标记中使用xx.contain(xxx),tags,struts2,enumeration,Tags,Struts2,Enumeration,你好: 以下是我的应用程序中的相关功能: @Entity @Table( name = "t_user") public class User { private int id; private List<RoleType> role; @ElementCollection( targetClass = RoleType.class) @Colle

你好: 以下是我的应用程序中的相关功能:

   @Entity
    @Table(
            name = "t_user")
public class User {
    private int                 id;
    private List<RoleType>      role;

    @ElementCollection(
            targetClass = RoleType.class)
    @CollectionTable(
            name = "t_user_roles",
            joinColumns = @JoinColumn(
                    name = "user_id"))
    @Enumerated(EnumType.STRING)
    @LazyCollection(LazyCollectionOption.FALSE)
    public List<RoleType> getRole() {
        return role;
    }
    //seter and getter
}


public enum RoleType {
    VIP, SysManger, Publisher;
}
@实体
@桌子(
name=“t_用户”)
公共类用户{
私有int-id;
私人名单角色;
@元素集合(
targetClass=RoleType.class)
@收集表(
name=“t\u用户\u角色”,
joinColumns=@JoinColumn(
name=“user\u id”))
@枚举(EnumType.STRING)
@LazyCollection(LazyCollectionOption.FALSE)
公共列表getRole(){
返回角色;
}
//集气器
}
公共枚举角色类型{
VIP、系统经理、出版商;
}
现在,在我的页面中,我想根据当前用户的角色类型构建页面

所以我需要像这样的东西:

<s:set value="#session.current_user" var="cuser"/>
<s:if test="#cuser.role.contains(com.test.entity.RoleType.Publisher)">
    <li><a href="common/listTask_userPub?uid=<s:property value='#cuser.id'/>">Tasks published by Me</a></li>
</s:if>

  • 但是它根本不起作用,所以我想知道是否有其他的想法可以满足我的要求?

    通过这行

    <s:set value="#session.current_user" var="cuser"/>
    
    这是我的高级猜测,希望它能帮助你

    <s:if test="%{(cuser.role).contains(com.test.entity.RoleType.Publisher)}">