Trouble populating Datatable
suraj Jan 19, 2009 2:06 PMHello!
I've been trying to get a Datatable to display values from my table. I thought it was simple, but I'm certainly missing something here. All i see is a empty datatable.I'm able to see the contents of the ResultList obj, BTW here is my source code.
DataTablebean.java - Backing Bean
package com.org.MySeam;
import java.util.List;
import javax.persistence.EntityManager;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.datamodel.DataModel;
@Name("dataforDistricts")
public class DataTableBean {
@In EntityManager entityManager;
@DataModel
private List<District> distlist=null;
@Create
public List<District> loadlist()
{
try{
distlist=(List<District>)entityManager.createQuery(" from District").getResultList();
}
catch(Exception e){
System.out.println("Exception..." + e);
e.printStackTrace();
}
return distlist;
}
public List<District> getDistlist() {
return distlist;
}
public void setDistlist(List<District> distlist) {
this.distlist=distlist;
}
}
District.java
package com.org.MySeam;
import static org.jboss.seam.ScopeType.SESSION;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Entity;
...........
@Entity
@Name("district")
@Scope(SESSION)
@Table(name="districts")
public class District implements Serializable
{
@In EntityManager entityManager;
private static final long serialVersionUID = 1L;
private String distname;
private String distname_mal;
private String distcode;
public District(String distname, String distcode, String distname_mal)
{
this.distname = distname;
this.distname_mal = distname_mal;
this.distcode = distcode;
}
@NotNull
public String getdistName()
{
return distname;
}
@Id@NotNull @Length(min=3, max=3)
public String getdistCode()
{
return distcode;
}
@NotNull
public String getdistName_mal()
{
return distname_mal;
}
public void setdistName(String distname)
{
this.distname = distname;
}
public void setdistName_mal(String distname_mal)
{
this.distname_mal = distname_mal;
}
public void setdistCode(String distcode)
{
this.distcode = distcode;
}
@Override
public String toString()
{
return "District(" + distname + " "+distname_mal+" "+distcode+")";
}
}
addDistricts.xhtml
<rich:panel>
<f:facet name="header">
<h:outputText value="District Details"/>
</f:facet>
<rich:dataTable
cellpadding="0" cellspacing="0"
width="700" border="0" var="items" value="#{dataforDistricts.distlist}" style=" width : 1083px;" align="center">
<f:facet name="header">
<rich:columnGroup>
<rich:column colspan="3">
<h:outputText value="DISTRICT INFORMATION" />
</rich:column>
<rich:column breakBefore="true">
<h:outputText value="#{items.distCode}"></h:outputText>
</rich:column>
<rich:column>
<h:outputText value="#{items.distName}"></h:outputText>
</rich:column>
<rich:column>
<h:outputText value="#{items.distName_mal}"></h:outputText>
</rich:column>
</rich:columnGroup>
</f:facet>
</rich:dataTable>
</rich:panel>
.....faces-config.xml
<?xml version="1.0" encoding="UTF-8"?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>dataforDistricts</managed-bean-name> <managed-bean-class>com.org.MySeam.DataTableBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> <locale-config> <default-locale>en</default-locale> <supported-locale>bg</supported-locale> <supported-locale>de</supported-locale> <supported-locale>en</supported-locale> <supported-locale>fr</supported-locale> <supported-locale>it</supported-locale> <supported-locale>tr</supported-locale> </locale-config> </application> </faces-config>