Тогда почему бы вам просто не проверить, является ли возвращенная строка самим кодом?
<g:if test="${message(code: 'default.code.foo') == 'default.code.foo'}">
true
</g:if><g:else>
false
</g:else>
Если вам нужно сделать это в нескольких местах и сделать код более лаконичным, поместите эту логику в тег lib.
class MsgTagLib {
static namespace = 'msg'
def messageSource
private static final NO_ARGS = [].toArray();
def exists = {attrs ->
try {
messageSource.getMessage(attrs.code, NO_ARGS, Locale.default)
out << true
} catch (NoSuchMessageException e) {
out << false
}
}
}
Затем вы можете вызвать это в GSP, используя:
<msg:exists code="default.code.foo"/>
Примечание
- Приведенный выше тег lib на 100% непроверен, будьте осторожны!
- Тег
exists
в его форме выше не поддерживает параметризованные сообщения