You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
In JSF, the recommended UI component to use for layout purposes is <h:panelGrid> which renders a <table>.
The following code will allow you to vertically top align three <h:dataTable> components in a <h:panelGrid>.
xhtml:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:s="http://jboss.com/products/seam/taglib" template="/templates/normal.xhtml"> <ui:define name="body"> <head> <style> div.divTop TD {vertical-align:top;} </style> </head> <div class="divTop"> <h:panelGrid columns="3" border="1" width="100%"> <h:dataTable value="#{foo1}" var="name"> <h:column> <h:outputText value="#{name}"/> </h:column> </h:dataTable> <h:dataTable value="#{foo2}" var="name"> <h:column> <h:outputText value="#{name}"/> </h:column> </h:dataTable> <h:dataTable value="#{foo3}" var="name"> <h:column> <h:outputText value="#{name}"/> </h:column> </h:dataTable> </h:panelGrid> </div> </ui:define> </ui:composition>
JavaBean:
@Name("testTopAlignBean") @Scope(ScopeType.CONVERSATION) public class TestTopAlignBean implements Serializable { @DataModel private List<String> foo1; @DataModel private List<String> foo2; @DataModel private List<String> foo3; @Factory("foo1") public void getFoo1() { foo1 = new ArrayList<String>(); foo1.add("Adam"); foo1.add("Bee"); foo1.add("Gee"); } @Factory("foo2") public void getFoo2() { foo2 = new ArrayList<String>(); foo2.add("Jen"); } @Factory("foo3") public void getFoo3() { foo3 = new ArrayList<String>(); foo3.add("A"); foo3.add("B"); foo3.add("C"); foo3.add("D"); foo3.add("E"); foo3.add("F"); foo3.add("G"); } }