This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
The actual answer of this question is
The h:panelGrid tag is used to represent an entire table. The h:panelGroup tag is used to represent rows in a table.
The columns attribute defines how to group the data in the table and therefore is required if you want your table to have more than one column. The h:panelGrid tag also has a set of optional attributes that specify CSS classes:columnClasses, footerClass, headerClass, panelClass, and rowClasses.