tree2

actionListener(jsp側)とList children = event.getComponent().getChildren();(Bean側:ActionEvent)の連携部分、
で何を渡しているのかを理解するのにえらい時間かかった…。
http://myfaces.apache.org/tomahawk/apidocs/org/apache/myfaces/custom/tree2/TreeNodeBase.html
非常にカンタンにしか書かれていないけどドキュメント。
Constructor Summary
TreeNodeBase(java.lang.String type, java.lang.String description, java.lang.String identifier, boolean leaf)
つーのが重要でdescriptionとidentifier(こっち省略可)が渡されていたわけですね…。
String型のみでオブジェクト不可なあたりもなんとかならんものか。
以下ソース抜粋。

.jsp
<t:tree2 id="clientTree" showRootNode="false"
			value="#{communityBean.treeData}" var="node" varNodeToggler="t" >
	<f:facet name="KK">
		<h:panelGroup>
			<f:facet name="expand">
				<t:graphicImage value="images/yellow-folder-open.png"
							rendered="#{t.nodeExpanded}" border="0" />
			</f:facet>
			<f:facet name="collapse">
				<t:graphicImage value="images/yellow-folder-closed.png"
							rendered="#{!t.nodeExpanded}" border="0" />
			</f:facet>
				<h:outputText value="#{node.description}" styleClass="nodeFolder" />
				<h:outputText value=" (#{node.childCount})" styleClass="childCount" />
		</h:panelGroup>
	</f:facet>
	<f:facet name="section">
		<h:panelGroup>
			<f:facet name="expand">
				<t:graphicImage value="images/yellow-folder-open.png"
							rendered="#{t.nodeExpanded}" border="0" />
			</f:facet>
			<f:facet name="collapse">
				<t:graphicImage value="images/yellow-folder-closed.png"
							rendered="#{!t.nodeExpanded}" border="0" />
			</f:facet>
			<h:outputText value="#{node.description}" styleClass="nodeFolder" />
			<h:outputText value=" (#{node.childCount})" styleClass="childCount" />
		</h:panelGroup>
	</f:facet>
	<f:facet name="person">
		<h:panelGroup>
			<h:commandLink immediate="true" actionListener="#{topBean.getUserAndEntryByTreeUserId}" action="return">
				<f:param name="userName" value="#{node.identifier}"></f:param>
				<h:graphicImage style="border: 0px" value="/images/document.png" />
				<h:outputText value="#{node.description}" />
			</h:commandLink>
		</h:panelGroup>
	</f:facet>
</t:tree2>

communityBean.treeDataでは表示用のdescriptionとは別にIDをidentifierに仕込んでます。
いったんStringにしてますが。

TopBean.java
public void getUserAndEntryByTreeUserId(ActionEvent event) {
        List children = event.getComponent().getChildren();
        String stringUserId = null ;
        for (Iterator iter = children.iterator(); iter.hasNext();) {
            Object next = iter.next();
            if (next instanceof UIParameter) {
                UIParameter param = (UIParameter) next;
                stringUserId = (String)param.getValue();
            }
        }
	int id = Integer.parseInt(stringUserId);
	ent = entries.getEntriesByUserId(id);	
}

まだvarNodeTogglerの意味やactionListenerとactionの使い分けなんぞ理解しきれてません。