有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

zk mvc中的java我想在列表上迭代

我在zk中有一个程序,我需要使用mvc来设置列表框的详细信息。在我的模型中,我有一个具有id、用户名、密码和一组角色(角色是枚举)的用户。在我的控制器中,填写ListModelList<User>

在zul中,我有以下代码:

<template name="model">
    <listitem >
        <listcell label="${each.idUser}"></listcell>
        <listcell label="${each.username}"></listcell>
        <listcell label="${each.password}"></listcell>
        <listcell label="${each.roles}"></listcell>
    </listitem> 
</template>

现在我不想把每一个都放进去。角色,但如果角色集包含例如角色,则我希望为true。管理员

我该怎么做?我试过了

<listcell label="${each.roles.contains(Role.ADMIN)}"></listcell>

但这让我总是错的,虽然有些用户有管理员的角色


共 (1) 个答案

  1. # 1 楼答案

    我不相信您可以从ZK's Expression Language (EL)执行像contains这样的函数

    相反,您需要将这个contains(Role.ADMIN)逻辑包装在一个更像getter的函数中。试试这个:

    <listcell label="${each.isAdmin}"></listcell>
    

    isAdmin的getter添加到模型对象后:

    public boolean getIsAdmin() {
        return roles.contains(Role.ADMIN);
    }
    

    这似乎需要做更多的工作,但我认为它实际上在将视图与业务逻辑分离方面有很大的帮助。像这样的小东西使视图更具声明性,更易于阅读,同时保持Java的复杂性,便于测试