使用Thymeleaf在Script标签中发送安全参数

时间:2018-10-11 00:26:16

标签: java spring-mvc thymeleaf

我正在尝试像这样在脚本标签中发送参数:

<script th:src="@{/js/myScript.js(arg0=${value})}"></script>

其中值是以下结果的结果: hasAuthority('USER')

所以,我尝试了这个:

<script th:src="@{/js/myScript.js(arg0=${hasAuthority('USER')})}"></script>

但这不起作用:

Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "hasAuthority('USER')" (template: "groups" - line 61, col 9)

Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1004E: Method call: Method hasAuthority(java.lang.String) cannot be found on org.thymeleaf.spring4.expression.SPELContextMapWrapper type

我以前使用过此功能来显示没有问题的div:

<li sec:authorize="${hasAuthority('ADMIN')}">

1 个答案:

答案 0 :(得分:1)

尝试一下。

<script sec:authorize="${hasAuthority('USER')}" th:src="@{/js/myScript.js(arg0=ADD_VALUE_HERE)}"></script>

只有在您具有正确权限的情况下,这才会加载此特定js。对于您的情况,只需更改js参数的值即可。