当前位置: 首页 > 知识库问答 >
问题:

如何使用SpEL和hasRole来设置html属性?

龚俭
2023-03-14

在spring/thymeleaf中:我想根据用户是否具有ROLE_A来设置属性。

  1. 我在下面尝试了HTML:

它总是呈现为

,而不管用户是否具有ROLE_A:

SpelEvaluationException:EL1004E:(pos 0):方法调用:在org.thymeleaf.spring4.expression.SpelContextMapWrapper类型上找不到方法hasRole(java.lang.String

如何根据分配的身份验证角色将属性设置为truefalse。多谢了。

共有1个答案

井高峯
2023-03-14

有时,这是原因,因为您的项目的配置。所以,让我们做一些更改,使用下面的代码。

<section class="footer" ... th:someattr="${#authorization.expression('hasRole(''ROLE_A'')' ? 'true' : 'false'}">

要使用#authorization,您需要添加以下依赖项thymeleaf-extras-springsecurity4

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>

如果您使用的是 spring-boot-starter-parent ,那么您将不需要向您的Thymeleaf额外添加任何版本,因为Spring Boot可以为您管理这些版本。如果没有,请尝试添加此版本 3.0.4.release

注意:如果它不起作用,请为thymeleaf-extras-springsecurity5更改它,根据您的Spring版本,一个可以工作,另一个不行。

 类似资料:
  • 我在为我的控制面板创建一个模板 我想在模板中做一个“返回”按钮,在那里我可以设置您的为扩展页面设置 所以我尝试使用@产量为设置,但没有成功 放松我的代码

  • 问题内容: 当我使用PHP设置HTML表单输入元素的值时,只要数据中没有空格,它就可以正常工作。 如果我输入“ Jonathan”作为用户名,则按预期将其返回给我。但是,如果输入“ Big Ted”,则在提交表单时只会重复返回“ Big”。 注意该变量是正确的。当我使用PHP回显它时,它设置为“ Big Ted”。 问题答案: 引用它。否则,空格将变成属性分隔符,空格之后的所有内容都将被视为元素属

  • 了解如何设置 Dreamweaver 页面的 HTML 页面属性和 CSS 属性,如字体、背景颜色和背景图像属性。 对于在 Dreamweaver 中创建的每个页面,都可以使用“页面属性”对话框(“文件”>“页面属性”)指定布局和格式设置属性。“页面属性”对话框让您可以指定页面的默认字体系列和字体大小、背景颜色、边距、链接样式及页面设计的其他许多方面。您可以为创建的每个新页面指定新的页面属性,也可

  • 问题内容: 这段代码返回一个错误:AttributeError:无法设置属性这真的很遗憾,因为我想使用属性而不是调用方法。有谁知道为什么这个简单的例子不起作用? 问题答案: 这是你想要的吗? 取自http://docs.python.org/library/functions.html#property。

  • 我想根据“配置文件”设置注释的值。 让我举个例子来解释; 在上面的例子中,我们可以看到活动的“配置文件”是PROD,但是假设我们想要使用DEV配置文件,我们将不得不注释来自PROD的@Table注释,并取消注释DEV@Table注释。 如果这只针对一个实体,那不会是一个问题,但我有很多实体都有这种情况,所以我不认为这是处理这种即兴“简介”的方式。 你知道有什么办法可以解决这种情况吗?

  • 问题内容: 提供了type的HTML元素,如何设置其属性的值,即范围变量和字符串的连接? 问题答案: 如官方文档中所述,指令在这里完全可以提供帮助 https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to- arbitrary-attributes 例如,要设置元素的属性值以使其包含索引,则视图片段可能包含 这将被插