public void eval(ExpressionContext context, Writer out) throws IOException, TemplateEvaluationException { try { Object value = expression.eval(context); if (value != null) { Locale locale = (Locale) context.get(DefaultTemplateBindings.LocaleVariable); if (locale == null) { locale = Locale.getDefault(); } String str = applyFilters(value, locale); if (raw) { out.write(str); } else { out.write(EscapeFilter.doFilter(str)); } } } catch (ExpressionEvaluationException e) { throw new TemplateEvaluationException(e, "Could not execute the expression: " + e.getMessage() + ", on line: " + getLine() + ", column: " + getColumn(), getLine(), getColumn()); } }
ExpressionTagPart p = new ExpressionTagPart(currentToken.value, expressionLanguage.parse(currentToken.value, currentToken.getLineNo(), currentToken.getColumn()), t.isRawExpression(), currentToken.getLineNo(), currentToken.getColumn()); p.setFilters(t.getFilters());
for (TagPart t : tag.getTagParts()) { if (t instanceof ExpressionTagPart) { ((ExpressionTagPart) t).eval(context, out); } else { if (t.preserveWhitespace()) {