I’m using richFaces 3.3 and JSF 1.2.
In my sample application I need to display List of items in and contains also
i.e( 2 columns having and third one is )
If I try to give List with in another List as value for rich:columns means its not working but direct bean value is working ???
mainClass
having getter , setter of String item1 , String item2, List priceList
mainList
contains item 1
item 2
List<price> priceList like that...
so in <rich:dataTable> if i try to give value like
<rich:dataTable id="positions" value="#{bean.mainList}" var="var">
<rich:column>
<f:facet name="header">
<h:outputText value="item1"/>
</f:facet>
<h:outputText id="contname" value="#{var.item1}">
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="item2"/>
</f:facet>
<h:outputText id="contname" value="#{var.item2}">
</rich:column>
<rich:columns value="#{var.priceList}" var="partnerPriceItem" columns="2" index="ind">
<f:facet name="header">
<h:outputText id="output#{ind}" value="#{partnerPriceItem.id}" />
</f:facet>
<h:outputText id="price#{ind}" value="#{partnerPriceItem.price}" />
</rich:columns>
</rich:dataTable>
here for first 2 columns working fine. but when I try to give referencing from another List means not working ??
output like
item 1 item 2 price1 price2 price3
1 2 100 200 300
2 2 50 100 75
To resolve your problem, you need to use the
rich:dataTableandrich:subTable. There is an example in the exadel live demo site.Let’s have a look in the code (this is not the real code of the site, it’s just an example to get the idea):
Java Classes
We have the managed bean Report that contains an instance of ExpReport. Inside ExpReport we have a List of Records (the list we want to display in the table), but each record has its own inner List of Expenses (the list we want to display along with the records). Now, we just need to set up our rich:dataTable and the rich:subTable in it to get the magic flowing in our jsp.
Note: You can get more info on the documentation of rich:column.
Sorry for my bad english, I hope this can be helpful in your application.