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);
но нет такого метода. Я прав? Есть ли способ обойти это?