StringTemplate список атрибутов, определенных для данного шаблона

Я начинаю с StringTemplate 4, и я пытаюсь создать шаблон из простой строки, хранящейся в базе данных. Я использую что-то вроде этого:

STGroup group = new STGroupString(null, someTemplateString, '

Теперь все работает нормально, если я определяю все или меньше, чем атрибут, определенный для шаблонаsomeTemplateName, Теперь, если я пытаюсь добавить атрибут, который не существует, я получаю следующее исключение:

no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
  ...

что имеет смысл. Тем не менее, мне кажется, что заранее невозможно узнать, какие атрибуты определены для шаблона.someTemplateName, Я ожидал найти что-то вроде:

bool isDef = st.isDefined(someAttribute);

но нет такого метода. Я прав? Есть ли способ обойти это?

, '

Теперь все работает нормально, если я определяю все или меньше, чем атрибут, определенный для шаблонаsomeTemplateName, Теперь, если я пытаюсь добавить атрибут, который не существует, я получаю следующее исключение:

no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
  ...

что имеет смысл. Тем не менее, мне кажется, что заранее невозможно узнать, какие атрибуты определены для шаблона.someTemplateName, Я ожидал найти что-то вроде:

bool isDef = st.isDefined(someAttribute);

но нет такого метода. Я прав? Есть ли способ обойти это?

); ST st = group.getInstanceOf(someTemplateName); st.add(someAttribute, someValue);

Теперь все работает нормально, если я определяю все или меньше, чем атрибут, определенный для шаблонаsomeTemplateName, Теперь, если я пытаюсь добавить атрибут, который не существует, я получаю следующее исключение:

no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
  ...

что имеет смысл. Тем не менее, мне кажется, что заранее невозможно узнать, какие атрибуты определены для шаблона.someTemplateName, Я ожидал найти что-то вроде:

bool isDef = st.isDefined(someAttribute);

но нет такого метода. Я прав? Есть ли способ обойти это?

Ответы на вопрос(2)

Ваш ответ на вопрос