how to create table with dynamic columns with jsf, icefaces, java and html

Explanation
In many cases columns in table takes too many place of some columns are not to be shown to specific users.

New to Java, JSF, Icefaces? Here is some links to start with:
Why and when use ICEFACES?
First steps with jsf and java

We use simplest HTML tags, together with "ui:repeat" tag, which loops on 'tr' element.
Pros: every programmer, even not-jsf, can understand it. CSS is transparent: what you see is what you get.
Customization is simple too.
Use you favorite HTML editor, or JSF editor together with CSS tools to customize every aspect of this table, its easy!
fragment from TableWithDynamicColumns.jspx
	<table> 
		<caption>table with dynamic columns</caption> 
		<tr> 
			<td>Name</td> 
			<td>Phone</td> 
			<!-- third column is dynamic --> 
			<ui:fragment rendered="#{tableWithDynamicColumnsBean.showCreditCard}"> 
				<td>Credit card</td> 
			</ui:fragment> 
		</tr> 
		<ui:repeat value="#{tableWithDynamicColumnsBean.rows}" var="row"> 
			<tr> 
				<td><ice:outputText value="#{row.name}" /></td> 
				<td><ice:outputText value="#{row.phone}" /></td> 
				<!-- third column is dynamic --> 
				<ui:fragment 
					rendered="#{tableWithDynamicColumnsBean.showCreditCard}"> 
					<td><ice:outputText value="#{row.creditCard}" /></td> 
				</ui:fragment> 
			</tr> 
		</ui:repeat> 
	</table> 

This command link toggle on/off column
fragment from TableWithDynamicColumns.jspx
		<h:commandLink action="#{tableWithDynamicColumnsBean.toggleShowCreditCard}">toggle Credit Card column</h:commandLink> 

You can use othe controls to control columns