Velocimacro – Generate a HTML Select box and its Options
A quick and simple Velocimacro to generate HTML Select boxes and its Options; automatically selects the correct option based on the value given.
You can place this #macro anywhere in your Velocity templates but I used my global VM_global_library.vm file.
Code
CODE:
-
#macro( generateSelectBox $name $options $value )
-
<select name='$name' value='$value'>
-
#foreach ( $option in $options )
-
#set( $selected = "" )
-
#if ( $option == $value )
-
#set( $selected = "selected='true'" )
-
#end
-
<option value='$option' $selected>$option</option>
-
#end
-
</select>
-
#end
Example Usage
CODE:
-
#generateSelectBox( "enabled" ["Y","N"] $form.enabled )
The resulting HTML:
CODE:
-
<select name='enabled' value='N'>
-
<option value='Y'>Y</option>
-
<option value='N' selected='true'>N</option>
-
</select>
Addendum
11th November 2005 : Thanks to MATT for pointing out the FreeMarker template engine as a promising replacement for Velocity.