<h:panelGrid columns="2"> ... <h:panelGroup> <h:inputText id="name" value="#{user.name}"> <h:message for="name"/> </h:panelGroup> ... </h:panelGrid>
Here is a modified version of the previous application that uses h:panelGrid and h:panelGroup instead of an HTML table.
Here is the JSP page for the form. Here is the styles.css file it uses.
Note that while the name input tag has an associated message tag, the age input tag does not, but the grouping allows components to line up correctly.