Это может быть не то, что вы ищете, поскольку каждый раз, когда вам нужно добавить сравнение, вы должны передать дополнительный параметр, а для циклов это еще хуже. Но это один из обходных путей, который может работать для простых случаев.
кто-нибудь объяснить, почему это не работает?
StringTemplate query = new StringTemplate("hello " +
"$if(param==\"val1\")$" +
" it works! " +
"$endif$ " +
"world");
query.setAttribute("param", "val1");
System.out.println("result: "+query.toString());
Это бросает
ошибка синтаксического анализа eval: 0: 0: неожиданный конец поддерева в org.antlr.stringtemplate.language.ActionEvaluator.ifCondition (ActionEvaluator.java:815) в org.antlr.stringtemplate.language.ConditionalExpr.write (ConditionalExpr.java:99 )