/** * Executes the operation. * @param definitionName The name of the definition to render. * @param template If specified, this template will be used instead of the * one used by the definition. * @param templateType The type of the template attribute. * @param templateExpression The expression to evaluate to get the value of the template. * @param role A comma-separated list of roles. If present, the definition * will be rendered only if the current user belongs to one of the roles. * @param preparer The preparer to use to invoke before the definition is * rendered. If specified, it overrides the preparer specified in the * definition itself. * @param flush If <code>true</code>, the response will be flushed after the insert. * @param request The request. * @param modelBody The body. * @throws IOException If something goes wrong. * @since 2.2.0 */ public void execute( @Parameter(name = "name", required = true) String definitionName, String template, String templateType, String templateExpression, String role, String preparer, boolean flush, Request request, ModelBody modelBody) throws IOException { TilesContainer container = TilesAccess.getCurrentContainer(request); container.startContext(request); modelBody.evaluateWithoutWriting(); container = TilesAccess.getCurrentContainer(request); renderDefinition(container, definitionName, template, templateType, templateExpression, role, preparer, flush, request); }