Java 在集合中查找字符串时出错
我想检查集合是否包含文本“ADMIN” 我可以做到以下无误:Java 在集合中查找字符串时出错,java,spring,thymeleaf,Java,Spring,Thymeleaf,我想检查集合是否包含文本“ADMIN” 我可以做到以下无误: <div th:each="r:${#authentication.principal.commRoles}"> <div th:if="${r.code} == 'ADMIN'"> <script> var isTransporterChangeable = true; </script&
<div th:each="r:${#authentication.principal.commRoles}">
<div th:if="${r.code} == 'ADMIN'">
<script>
var isTransporterChangeable = true;
</script>
</div>
<div th:unless="${r.code} == 'ADMIN'">
<script>
var isTransporterChangeable = false;
</script>
</div>
</div>
var isTransporterChangeable=真;
var isTransporterChangeable=假;
但当我尝试使用set.contains时:
<div th:if="${#sets.contains(#authentication.principal.commRoles.code, "ADMIN")}">
<script>
var isTransporterChangeable = true;
</script>
</div>
<div th:unless="${#sets.contains(#authentication.principal.commRoles.code, "ADMIN")}">
<script>
var isTransporterChangeable = false;
</script>
</div>
var isTransporterChangeable=真;
var isTransporterChangeable=假;
我收到一条错误消息:
EvaluationException:EL1008E:在“org.hibernate.collection.internal.PersistentSet”类型的对象上找不到属性或字段“code”-可能不是公共的或无效的
请帮忙。谢谢。#authentication.principal.commRoles
是一个列表,没有代码
您可以获取特定的角色对象并通过这种方式进行检查
th:if="${#sets.contains(#authentication.principal.commRoles, adminRole)}"
治疗百里香的正确方法是
<div sec:authorize="hasRole('ROLE_ADMIN')">
</div>
及
查看stacktrace不是很明显吗?找不到属性或字段“code”,请检查您的POJO是否具有此属性property@AlmasAbdrazak是的。第一个代码段有效,但第二个代码段无效field@HithamS.AlQadheeb是的,有。
<div sec:authorize="isAuthenticated()">
</div>