Apache Velocity

Source: Wikipedia, the free encyclopedia.
Apache Velocity
Stable release
2.3 / February 27, 2021; 3 years ago (2021-02-27)[1]
Apache License 2.0
Websitevelocity.apache.org

Apache Velocity first released in April 2001, is a

template language to reference objects defined in Java code. It aims to ensure clean separation between the presentation tier and business tiers in a Web application (the model–view–controller
design pattern).

Velocity is an

Apache Software Foundation. It is released under the Apache License. Jon Scott Stevens derived the name from the AltiVec Velocity Engine in the PowerPC G4
chip.

Uses

Some common types of applications that use Velocity are:

Code examples

The following

template
:

## Velocity Hello World
<html>
    <body>
        #set( $foo = "Velocity" )
        ## followed by
        Hello $foo World!
    </body>
</html>

processed by Velocity produces the following HTML:

<html>
    <body>
        Hello Velocity World!
    </body>
</html>

Another example using conditions:

#if( $foo < 10 )
    **Go North**
#elseif( $foo == 10 )
    **Go East**
#elseif( $bar == 6 )
    **Go South**
#else
    **Go West**
#end

AWS API Gateway body mapping template, for DynamoDB HTTP:

{
    "TableName": "happy-marketer",
    "KeyConditionExpression": "pk = :pk AND begins_with(sk, :sk)",
    #if ($input.params('projectStatus') == 'archived')
    "FilterExpression": "projectStatus = :Archived",
    #else
    "FilterExpression": "projectStatus = :InProgress OR projectStatus = :Completed",
    #end
    "ExpressionAttributeValues": {
        ":pk": {
            "S": "project"
        },
        ":sk": {
            "S": "$context.authorizer.claims.email"
        },
        #if ($input.params('projectStatus') == 'archived')
        ":Archived": {
            "S": "Archived"
        }
        #else
        ":InProgress": {
            "S": "In Progress"
        },
        ":Completed": {
            "S": "Completed"
        }
        #end
    }
}

Another example with optional array; without condition will fail because of invalid resulting JSON:

{
    "email": "$context.authorizer.claims.email"
    #if ($input.params('countries') != "")
    , "countries": $input.params('countries')
    #end
}

The syntax and overall concept of the Apache Velocity templates is similar to the syntax of the older WebMacro template engine, which is now also an open source project. [citation needed]

See also

References

  1. ^ "Apache Velocity - Project News". velocity.apache.org. Apache Software Foundation. Retrieved 2021-04-02.
  2. ^ "PoweredByVelocity". Velocity Wiki. Wiki.apache.org. 2009-12-30. Archived from the original on 23 March 2010. Retrieved 2010-03-29.

Bibliography

External links