Apache Struts 2 Documentation > Home > FAQs > Cookbook > Describing a bean in velocity
Added by sutter2k, last edited by Ted Husted on Sep 01, 2006  (view change)

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 = $webwork.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.

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