2017-01-10 7 views

ответ

2

Там нет встроенной функции в для этого, но в зависимости от настроек конфигурации и типа объекта, это может роботи:

<#if component.class.name == 'com.example.Something'> 

Это работает, потому что component.foo просто означает comonent.getFoo() в Java, поэтому выше всего лишь означает component.getClass().getName(). Это, однако, не работает, если свойства JavaBean component не отображаются, что (при условии обычной конфигурации FreeMarker) имеет место для String -s, Number -s, Map -s, -s и еще несколько "стандартных "классы. Если component может быть таким объектом, но сравнение в любом случае должно быть ложным, вы можете написать (component.class.name)!'unknown' == 'com.example.Something'.

+0

Спасибо, много работает, как и ожидалось. – Giovanni

+0

I uset <#if component.class.name?contains("TextComponentModel ")> полезен, поэтому я не могу указать полное имя класса. – Giovanni

+0

'? EndsWith (". TextComponentModel ")' (или 'ends_with') будет более безопасным, чем'? Contains ("TextComponentModel") '. – ddekany