static Fragment executeFragmentExpression( final IExpressionContext context, final FragmentExpression expression) { if (!(context instanceof ITemplateContext)) { throw new TemplateProcessingException( "Cannot evaluate expression \"" + expression + "\". Fragment expressions " + "can only be evaluated in a template-processing environment (as a part of an in-template expression) " + "where processing context is an implementation of " + ITemplateContext.class.getClass() + ", which it isn't (" + context.getClass().getName() + ")"); } if (expression == EMPTY_FRAGMENT_EXPRESSION) { return Fragment.EMPTY_FRAGMENT; } return resolveExecutedFragmentExpression( (ITemplateContext) context, createExecutedFragmentExpression(context, expression), // By default we will NOT consider a non existing template a failure, so that we give the system the chance // to return null here (in exchange for a call to resource.exists()). So this false will always be // applied in scenarios such as when the fragment expression is used as a parameter in a larger // fragment expression: "template : fragment (part=~{expr})" false); }
final int lastParenthesesGroupPos = indexOfLastParenthesesGroup(trimmedInput); templateNameExpression = parseDefaultAsLiteral(templateNameStr); if (templateNameExpression == null) { return null; fragmentSpecExpression = parseDefaultAsLiteral(fragmentSpecStr); if (fragmentSpecExpression == null) { return null; return new FragmentExpression(templateNameExpression, fragmentSpecExpression, parametersAsSeq, false); createSyntheticallyNamedParameterSequence(parametersExpSeq); return new FragmentExpression(templateNameExpression, fragmentSpecExpression, parametersAsSeqFromExp, true); return new FragmentExpression(templateNameExpression, fragmentSpecExpression, null, false);
logger.trace("[THYMELEAF][{}] Evaluating fragment: \"{}\"", TemplateEngine.threadIndex(), expression.getStringRepresentation()); final IStandardExpression templateNameExpression = expression.getTemplateName(); final Object templateNameExpressionResult; if (templateNameExpression != null) { createExecutedFragmentExpressionParameters(context, expression.getParameters(), expression.hasSyntheticParameters(), expContext); if (expression.hasFragmentSelector()) { fragmentSelectorExpressionResult = expression.getFragmentSelector().execute(context, expContext); expression, templateNameExpressionResult, fragmentSelectorExpressionResult, fragmentParameters, expression.hasSyntheticParameters());
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
String templateName = resolveTemplateName(executedFragmentExpression); final Set<String> fragments = resolveFragments(executedFragmentExpression); "Error resolving fragment: \"" + executedFragmentExpression.fragmentExpression.getStringRepresentation() + "\": " + "template or fragment could not be resolved");
public static ExecutedFragmentExpression createExecutedFragmentExpression( final IExpressionContext context, final FragmentExpression expression) { // All FragmentExpressions will be executed as RESTRICTED (no URL parameters allowed) return doCreateExecutedFragmentExpression(context, expression, StandardExpressionExecutionContext.RESTRICTED); }
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
/** * <p> * Create the executed fragment expression. * </p> * * @param context the context * @param expression the expresson * @param expContext the expression context * @return the executed fragment expression * * @deprecated Deprecated in 3.0.9. Use the version without "expContext" itself, as all FragmentExpressions should * be executed in RESTRICTED mode (no request parameter use allowed). */ @Deprecated public static ExecutedFragmentExpression createExecutedFragmentExpression( final IExpressionContext context, final FragmentExpression expression, final StandardExpressionExecutionContext expContext) { return doCreateExecutedFragmentExpression(context, expression, expContext); }
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
FragmentExpression.createExecutedFragmentExpression(context, (FragmentExpression) expression); FragmentExpression.resolveExecutedFragmentExpression(context, executedFragmentExpression, true);
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); return FragmentExpression.resolveExecutedFragmentExpression(context, executedFragmentExpression, true); FragmentExpression.createExecutedFragmentExpression(context, (FragmentExpression) fragmentExpression); FragmentExpression.resolveExecutedFragmentExpression(context, executedFragmentExpression, true);
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
FragmentExpression.createExecutedFragmentExpression(context, (FragmentExpression) expression); FragmentExpression.resolveExecutedFragmentExpression(context, executedFragmentExpression, true);
FragmentExpression.createExecutedFragmentExpression(context, fragmentExpression); templateName = FragmentExpression.resolveTemplateName(fragment); markupSelectors = FragmentExpression.resolveFragments(fragment); final Map<String,Object> nameFragmentParameters = fragment.getFragmentParameters();
FragmentExpression.createExecutedFragmentExpression(context, (FragmentExpression) expression); FragmentExpression.resolveExecutedFragmentExpression(context, executedFragmentExpression, true);