| Author |
issue in displaying the body content(fetched dynamically) of the h:dataTable
|
Rani Subramani
Greenhorn
Joined: Jan 16, 2009
Posts: 7
|
|
Hi All,
I need to display a table for which no: of columns is fixed but the
values of those columns is
fetched dynamically and the filled.
I am using <h:dataTable> for displaying but, the problem is only the
header is displaying..
the body (ie the values fetched dynamically) are not displayed. I am
not able to figure out the reason for not displaying . Since, i have
set the bean and the DTO classess correctly..
Can anybody help me to solve this problem....
these are my pages
search.jsp
--------------------
<h:dataTable
value="#{responseBean.responseDTO.resultData}" var="result"
cellpadding="5" cellspacing="7" border="10"
width="80" headerClass="header"
rowClasses="odd-row,even-row">
<h:column>
<f:facet name="header">
<f:verbatim>
<h utputText value="Flights Name"
styleClass="headerNames"></h utputText>
</f:verbatim>
</f:facet>
<h utputText value="#{result.flightNames}" styleClass="names" />
</h:column>
<h:column>
<f:facet name="header">
<f:verbatim>
<h utputText value="Flights number"
styleClass="headerNames"></h utputText>
</f:verbatim>
</f:facet>
<h utputText value="#{result.flightNumber}"
styleClass="names" />
</h:column>
</h:dataTable>
Response Bean Class
----------------------------------------
public class ResponseBean {
private AvailableFlightsDetailsDTO responseDTO = null;
AvailableFlightsDetailsDTO availDetails = AvailableFlightsDetailsDTO
.getInstance();
public ArrayList<ResultBean> searchResult() {
return availDetails.setResult();
}
public AvailableFlightsDetailsDTO getResponseDTO() {
return responseDTO;
}
public void setResponseDTO(AvailableFlightsDetailsDTO responseDTO) {
this.responseDTO = responseDTO;
}
}
This is that Response DTO class
--------------------------------------------------------
public class AvailableFlightsDetailsDTO implements Serializable {
private List<SearchFlightsResponseDTO> flightDetails;
private ArrayList<ResultBean> resultData;
public static AvailableFlightsDetailsDTO S_INSTANCE = new
AvailableFlightsDetailsDTO();
private AvailableFlightsDetailsDTO(){};
public static AvailableFlightsDetailsDTO getInstance(){
return S_INSTANCE;
}
public List<SearchFlightsResponseDTO> getFlightDetails() {
return flightDetails;
}
public void setFlightDetails(List<SearchFlightsResponseDTO>
flightDetails) {
this.flightDetails = flightDetails;
}
public ArrayList<ResultBean> getResultData() {
flightSearchList();
return resultData;
}
public void setResultData(ArrayList<ResultBean> resultData) {
this.resultData = resultData;
}
public ArrayList<ResultBean> setResult() {
ArrayList<ResultBean> list = new ArrayList<ResultBean>();
list = flightSearchList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
ResultBean result = new ResultBean();
result = (ResultBean) obj;
}
return list;
}
// Mock flightSearchList method
public ArrayList<ResultBean> flightSearchList(
) {
List<SearchFlightsResponseDTO> dtoList = new
ArrayList<SearchFlightsResponseDTO>();
resultData = new ArrayList<ResultBean>();
dtoList =this.getFlightDetails();
//System.out.println(""+dtoList);
Iterator<SearchFlightsResponseDTO> dtoIterator = dtoList.iterator();
while (dtoIterator.hasNext()) {
SearchFlightsResponseDTO searchDTO = dtoIterator.next();
ResultBean bean=new ResultBean();
bean.setArrivalLocationCode(searchDTO.getArrivalLocationCode());
bean.setDepLocationCode(searchDTO.getDepLocationCode());
bean.setFlightNames(searchDTO.getFlightName());
bean.setFlightNumber(searchDTO.getFlightNumber());
resultData.add(bean);
}
return resultData;
}
}
I actually set the dynamically fetched values in setFlightDetails. I
am able to set and get the values accordingly
config in faces-config
----------------------------------------------
<managed-bean>
<managed-bean-name>responseBean</managed-bean-name>
<managed-bean-class>
com.mindtree.tnt.flightsearch.bean.ResponseBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Thanks & Regards
Rani
|
 |
sandeepy yadav
Greenhorn
Joined: Feb 04, 2009
Posts: 6
|
|
hi,
I think you are going wrong way to display the data.If you are using DTO to display the Data.
You have to make follwing changes :-
1. Make a varible of DTO class in Main Bean Class.
3. Make an array of the DTO in Main Bean Class.
2. Make Getter /Setter of DTO & List DTO in Main Bean Class.
4. set all required value in DTO.
5. Add that instance in List<DTO> for each records
6. then display this list<DTO> in JSP page.
this will make your code simple & fast .
Thanks
Sawan
|
 |
 |
|
|
subject: issue in displaying the body content(fetched dynamically) of the h:dataTable
|
|
|