Here is my favorite documentation from Struts tags:
put - Put an attribute into tile/component/template context.
Define an attribute to pass to tile/component/template. This tag can only be used inside 'insert' or 'definition' tag. Value (or content) is specified using attribute 'value' (or 'content'), or using the tag body. It is also possible to specify the type of the value :
string : Content is written directly.
page template : Content is included from specified URL. Name is used as an URL.
definition : Content come from specified definition (from factory). Name is used as definition name.
If type is specified, it is taken into account by 'get' or 'insert' inside the inserted tile.
If 'type' attribute is not specified, content is 'untyped', unless it comes from a typed bean.
Note that using 'direct="true"' is equivalent to 'type="string"'.
Here is a nice quick JSF quick start:
JSF (Java Server Faces) Visual Tutorial