local - FreeMarker Manual

- Home
- Manual
- Java API

- Contribute
- Report a Bug
- Download

Manual
Previous Next

# local

## Synopsis

    <#local name=value>
    or
    <#local name1=value1 name2=value2 ... nameN=valueN>
    or
    <#local name>
      capture this
    </#local>

Where:

- `name`: the name of the local object in the root. It is not an expression. However, it can be written as a string literal, which is useful if the variable name contains reserved characters, for example `<#local "foo-bar" = 1>`. Note that this string literal does not expand interpolations (as `"${foo}"`).
- `=`: Assignment operator, which can also be one of the shorthand assignment operators (`++`, `+=`, etc.), just like with the `assign` directive,
- `value`: the value to store. Expression.

## Description

It is similar to assign directive, but it creates or replaces local variables. This only works inside macro definitions and function definitons.

For more information about variables, read this: Template Author's Guide/Miscellaneous/Defining variables in the template

Previous Next