Velocity tags are extensions of the generic Struts Tags provided by the framework. You can get jump right in just by knowing the structure in which the tags can be accessed: #s*tag *(...) ... #end, where tag is any of the Struts Tags supported by the framework.
For example, in JSP you might create a form using Struts tags.
In Velocity, the same form can also be built using macros.
Block and Inline Tags
Some VM tags require an #end statement while others do not. The inconsistency arises from a limitation in Velocity where tags must declare if they are a block or inline tag up front. As such, by default all tags are inline except for a few key ones, such as the form tag.