Home > FAQs > Cookbook > Describing a bean in velocity |

Apache Struts 2 Documentation
Describing a bean in velocity
Edit Page Browse Space Add Page Add News

The follow snippet might be useful during debugging to list the properties inside an
arbitary bean. Or for handing to a UI developer that use unaware of the getters/setters inside an object.

    ## prints out the property names for a bean
    #macro (describeBean $name)
    #set($bu = $struts.bean("com.opensymphony.util.BeanUtils"))
    	#foreach($propName in $bu.getPropertyNames($name))
    		<li>$propName</li>
    	#end
    #end

i.e. assuming $obj is a PersonObject that has properties(firstName, lastName, and zip).

    #describeBean($obj)

would print

    <li>firstName</li>
    <li>lastName</li>
    <li>zip</li>

One might also expand upon this to build a dynamic interface with via reflection. e.g.

    $struts.evalute("$obj.${propName}")