Home > FAQs > Cookbook > Describing a bean in velocity |
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}")