Apache Struts 2 Documentation > Home > FAQs > Cookbook > Describing a bean in velocity
Added by sutter2k, last edited by Philip Luppens on Jun 18, 2008  (view change) show comment

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}")