Вы должны написать SpEL как #{expression}
.
В вашем случае это должно быть похоже на
<intercept-url pattern="/myurl"
access="#{'${perm.status}' == 'secured' ? T(XXX.YYY.PermissionsConstants).PERMISSION_NAME :
'IS_AUTHENTICATED_ANONYMOUSLY'}"/>
Не заключайте T(XXX.YYY.PermissionsConstants).PERMISSION_NAME
в кавычки, в то время как '${perm.status}'
или любой String
необходимо заключить в кавычки.
Предположим, что вам нужно написать одно и то же выражение в классе java, тогда вы бы написали его следующим образом:
@Value("${perm.status}")
String permStatus;
// Inside a method
String expressionValue = == permStatus == "secured" ? PermissionsConstants.PERMISSION_NAME : "IS_AUTHENTICATED_ANONYMOUSLY";
Аналогично, вам нужно написать его внутри #{}
с некоторыми изменения:
Заменить двойные кавычки одинарными кавычками
Имя класса следует заменить на полное имя класса
Завершите полное имя класса с T()
перед доступом к любой константе из класса.
Надеюсь, это поможет!