如何迭代Java数组

时间:2019-01-15 11:42:54

标签: java thymeleaf

我正在Spring Boot中设置一个基于角色的授权,使用用户角色作为thymeleaf下拉选择中的客户端或供应商。列表项来自Java private List<String> userRoles()。如何迭代视图中的列表项?

我尝试使用Role.java模型类和User.java模型。我在List<String> userRoles()中以

的形式列出列表项
List<String> ROLE = new ArrayList<>();
ROLE.add("CLIENT");
ROLE.add("SUPPLIER");

控制器Java列表项

private List<String> userRoles() {
    List<String> ROLE = new ArrayList<>();
    ROLE.add("CLIENT");
    ROLE.add("SUPPLIER");
    return ROLE;
}

查看迭代次数

<select th:field="*{userRole}">
    <option th:each="*ROLE:${userRoles}" th:value="${ROLE}" th:text="${ROLE}">
        Select Role
    </option>
</select>

我希望ROLE变量具有元素CLIENT和SUPPLIER,但这就是我得到的 '!', '!=', '%', '&#', '&&', '&gt;', '&lt;', '*', '+', '+=', ',', '-', '.', '/', <, <=, <Literal>, '==', '>', '>=', IDENTIFIER, STRING_IDENTIFIER, and, div, empty, eq, ge, gt, le, lt, mod, ne, not, or, '|' or '||' expected, got ':' 我想知道逻辑是错误的还是完全错误的方式

1 个答案:

答案 0 :(得分:0)

收到该错误消息的原因是因为th:each表达式中有一个额外的星号:

th:each="*ROLE:${userRoles}"

应该是

th:each="ROLE: ${userRoles}"