LazyDataModel problem Property not readable on type

UI Components for JSF
Post Reply
ilkay.polat
Posts: 5
Joined: 15 Jun 2010, 09:37
Contact:

15 Jun 2010, 10:01

Hello;

I want to use datatable in primefaces with lazy loading feature. I tried to test the sample represented in demo page of primesfaces.
I tried many ways and searched from net but no related things were not found. Any help is appreciated... Thanks
My problem is to get this error:
SEVERE: Error Rendering View[/index.xhtml]
javax.el.PropertyNotFoundException: /index.xhtml @17,48 value="#{table.name}": Property 'name' not readable on type java.lang.String
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:104)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIOutput.getValue(UIOutput.java:168)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:338)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:77)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:61)
at org.primefaces.component.datatable.DataTableRenderer.encodeTable(DataTableRenderer.java:544)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:441)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:239)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)

Codes used by this test project.

Code: Select all

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
       
    </h:head>
    <h:body>
    <h:form>
        <p:dataTable  value="#{tableBean.lazyModel}" var="table" paginator="true" rows="10"
     dynamic="true" lazy="true" paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">
     <p:column>
         <f:facet name="header">
             <h:outputText value="Model" />
         </f:facet>
         <h:outputText value="#{table.name}" />
     </p:column>

     <p:column>
         <f:facet name="header">
             <h:outputText value="Year" />
         </f:facet>
         <h:outputText value="#{table.id}" />
     </p:column>    
</p:dataTable>      
    </h:form>
    </h:body>
</html>

Code: Select all


import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import org.primefaces.model.LazyDataModel;

@ManagedBean
public class TableBean {

    
private List<Car> lazyCars;
     private LazyDataModel<Car> lazyModel;

     public TableBean() {
        
     }

    public List<Car> getLazyCars() {
        return lazyCars;
    }

    public void setLazyCars(List<Car> lazyCars) {
        this.lazyCars = lazyCars;
    }

     

     public LazyDataModel<Car> getLazyModel() {
         if(lazyModel == null)
         {
         lazyModel = new LazyDataModel<Car>(100000000) {

             /**
              * Dummy implementation of loading a certain segment of data.
              * In a real applicaiton, this method should access db and do a limit based query
              */
             @Override
             public List<Car> fetchLazyData(int first, int pageSize) {


                lazyCars = new ArrayList<Car>();
                 populateLazyRandomCars(lazyCars, pageSize, first);

                 return lazyCars;
             }
         };
         }
         return lazyModel;
     }

     private void populateLazyRandomCars(List<Car> list, int size, int first) {
         for(int i = 0 ; i < size ; i++) {
             int offset = i + first;
             list.add(new Car(offset, "Araba" + offset));
         }
     }

     private int getRandomYear() {
         return (int) (Math.random() * 50 + 1960);
     }
}  
--

ilkay POLAT

Software Engineer

ilkay.polat
Posts: 5
Joined: 15 Jun 2010, 09:37
Contact:

16 Jun 2010, 14:17

I have handled this problem. Problem is my configuration related. I opened a new project and put the codes in lazy loading sample and worked.
For your information.
--

ilkay POLAT

Software Engineer

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

16 Jun 2010, 20:41

False alarm ;)

bikinurse
Posts: 5
Joined: 17 May 2012, 16:30

18 May 2012, 20:47

Hello guys.
I have the same problem while trying to use the inline-edit table. I copied the files from the demo site. I really cannot figure out what the problem is. I am new to jsf
This is the error that I get:

An Error Occurred:
/transaction.xhtml @28,61 value="#{car['model']}": Property 'model' not readable on type java.lang.String
- Stack Trace

javax.el.PropertyNotFoundException: /transaction.xhtml @28,61 value="#{car['model']}": Property 'model' not readable on type java.lang.String
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:104)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIOutput.getValue(UIOutput.java:168)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:338)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at org.primefaces.component.celleditor.CellEditorRenderer.encodeEnd(CellEditorRenderer.java:38)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularCell(DataTableRenderer.java:760)
at org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:722)
at org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:626)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:248)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:224)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:108)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45)
at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1773)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)

User avatar
T.dot
Expert Member
Posts: 620
Joined: 01 Feb 2012, 15:39
Location: Vienna/Austria

18 May 2012, 21:19

Please create new issue for new problems. Don't add new questions to threads that are two years old ;)

Also follow the posting guidelines. See here: viewtopic.php?f=3&t=1194
- State your version information
- Show us your jsf and java code

Otherwise we can only guess and that won't help you much ;)

bikinurse
Posts: 5
Joined: 17 May 2012, 16:30

18 May 2012, 21:52

T.dot, I understand you perfectly, But not everyone was using jsf two years ago. You are pro, others are are hearing of jsf today
Anyway if u are interested in helping a newbie lyk me my version jsf version is 2.0, primefaces 3.2

Code: Select all

The bean
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.fidela.beans;

//package org.primefaces.examples.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

@ManagedBean
public class TableBean implements Serializable {

	private final static String[] colors;

	private final static String[] manufacturers;
        
        

    private List<Car> carsSmall;

	static {
		colors = new String[10];
		colors[0] = "Black";
		colors[1] = "White";
		colors[2] = "Green";
		colors[3] = "Red";
		colors[4] = "Blue";
		colors[5] = "Orange";
		colors[6] = "Silver";
		colors[7] = "Yellow";
		colors[8] = "Brown";
		colors[9] = "Maroon";

		manufacturers = new String[10];
		manufacturers[0] = "Mercedes";
		manufacturers[1] = "BMW";
		manufacturers[2] = "Volvo";
		manufacturers[3] = "Audi";
		manufacturers[4] = "Renault";
		manufacturers[5] = "Opel";
		manufacturers[6] = "Volkswagen";
		manufacturers[7] = "Chrysler";
		manufacturers[8] = "Ferrari";
		manufacturers[9] = "Ford";
	}

	public TableBean() {
		carsSmall = new ArrayList<Car>();

		populateRandomCars(carsSmall, 9);
	}

	private void populateRandomCars(List<Car> list, int size) {
		for(int i = 0 ; i < size ; i++)
			list.add(new Car(getRandomModel(), getRandomYear(), getRandomManufacturer(), getRandomColor()));
	}

	public List<Car> getCarsSmall() {
		return carsSmall;
	}
        
	private int getRandomYear() {
		return (int) (Math.random() * 50 + 1960);
	}

	private String getRandomColor() {
		return colors[(int) (Math.random() * 10)];
	}

	private String getRandomManufacturer() {
		return manufacturers[(int) (Math.random() * 10)];
	}

	private String getRandomModel() {
		return UUID.randomUUID().toString().substring(0, 8);
	}

    public String[] getManufacturers() {
        return manufacturers;
    }
    
    

    public String[] getColors() {
        return colors;
    }
}


transaction.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"

      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <ui:composition template="index.xhtml">
            <ui:define name="mainContent">
                <h:form id="form">

                    <p:growl id="messages" showDetail="true"/>

                    <p:dataTable var="car" value="#{tableBean.carsSmall}" id="carList" editable="true">

                        <f:facet name="header">
                            In-Cell Editing
                        </f:facet>

                        <p:column headerText="Model" style="width:125px">
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{car.model}" />
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{car.model}" style="width:100%"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column headerText="Year" style="width:125px">
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{car.year}" />
                                </f:facet>
                                <f:facet name="input">
                                    <p:inputText value="#{car.year}" style="width:100%" label="Year"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column headerText="Manufacturer" style="width:125px">
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{car.manufacturer}" />
                                </f:facet>
                                <f:facet name="input">
                                    <h:selectOneMenu value="#{car.manufacturer}" >
                                        <f:selectItems value="#{tableBean.manufacturers}"
                                                       var="man" 
                                                       itemLabel="#{man}"
                                                       itemValue="#{man}" />
                                    </h:selectOneMenu>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column headerText="Color" style="width:125px">
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{car}" />
                                </f:facet>
                                <f:facet name="input">
                                    <h:selectOneMenu value="#{car}" >
                                        <f:selectItems value="#{tableBean.colors}"
                                                       var="color" 
                                                       itemLabel="#{color}"
                                                       itemValue="#{color}" />
                                    </h:selectOneMenu>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>

                        <p:column headerText="Options" style="width:50px">
                            <p:rowEditor />
                        </p:column>

                    </p:dataTable>

                </h:form>

            </ui:define>
        </ui:composition>
    </h:body>
</html>
Last edited by bikinurse on 18 May 2012, 22:07, edited 1 time in total.

User avatar
T.dot
Expert Member
Posts: 620
Joined: 01 Feb 2012, 15:39
Location: Vienna/Austria

18 May 2012, 22:02

- try car.model instead of car['model']
- fix all #{car} references, they should always reference a property of the car like car.model, car.year, car.manufacturer, ...
- The [ code ] tag can help you format your posts.
- You should also update to the lastet JSF Version (2.1.7) to avoid any side effects caused by old jsf versions
- Start by simplifying your dataTable - start with only one column:

Code: Select all

<p:dataTable var="car" value="#{tableBean.carsSmall}" id="carList" editable="true">

<f:facet name="header">
In-Cell Editing
</f:facet>

<p:column headerText="Model" style="width:125px">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.model}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{car.model}" style="width:100%"/>
</f:facet>
</p:cellEditor>
</p:column>

bikinurse
Posts: 5
Joined: 17 May 2012, 16:30

18 May 2012, 22:07

Thank you bro, I posted the wrong code, I have updated it anyway.
This is the error am getting now: Property 'model' not readable on type java.lang.String

User avatar
T.dot
Expert Member
Posts: 620
Joined: 01 Feb 2012, 15:39
Location: Vienna/Austria

19 May 2012, 01:07

I tried your code. It basically works for me. I tried it on Tomcat 7/JSF Mojarra 2.1.7/Primefaces 3.2

This is the xhtml I used:

Code: Select all

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<title>Facelet Title</title>
</h:head>
<h:body>

	<h:form id="form">

		<p:growl id="messages" showDetail="true" />

		<p:dataTable var="car" value="#{tableBean.carsSmall}" id="carList"
			editable="true">

			<f:facet name="header">
                            In-Cell Editing
                        </f:facet>

			<p:column headerText="Model" style="width:125px">
				<p:cellEditor>
					<f:facet name="output">
						<h:outputText value="#{car.model}" />
					</f:facet>
					<f:facet name="input">
						<p:inputText value="#{car.model}" style="width:100%" />
					</f:facet>
				</p:cellEditor>
			</p:column>

			<p:column headerText="Year" style="width:125px">
				<p:cellEditor>
					<f:facet name="output">
						<h:outputText value="#{car.year}" />
					</f:facet>
					<f:facet name="input">
						<p:inputText value="#{car.year}" style="width:100%" label="Year" />
					</f:facet>
				</p:cellEditor>
			</p:column>

			<p:column headerText="Manufacturer" style="width:125px">
				<p:cellEditor>
					<f:facet name="output">
						<h:outputText value="#{car.manufacturer}" />
					</f:facet>
					<f:facet name="input">
						<h:selectOneMenu value="#{car.manufacturer}">
							<f:selectItems value="#{tableBean.manufacturers}" var="man"
								itemLabel="#{man}" itemValue="#{man}" />
						</h:selectOneMenu>
					</f:facet>
				</p:cellEditor>
			</p:column>

			<p:column headerText="Color" style="width:125px">
				<p:cellEditor>
					<f:facet name="output">
						<h:outputText value="#{car.color}" />
					</f:facet>
					<f:facet name="input">
						<h:selectOneMenu value="#{car.color}">
							<f:selectItems value="#{tableBean.colors}" var="color"
								itemLabel="#{color}" itemValue="#{color}" />
						</h:selectOneMenu>
					</f:facet>
				</p:cellEditor>
			</p:column>

			<p:column headerText="Options" style="width:50px">
				<p:rowEditor />
			</p:column>

		</p:dataTable>

	</h:form>


</h:body>
</html>
Backing Bean:

Code: Select all

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.fidela.beans;

//package org.primefaces.examples.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class TableBean implements Serializable {

	private final static String[] colors;

	private final static String[] manufacturers;

	public static class Car {
		private String model;
		private int year;
		private String manufacturer;
		private String color;

		public String getModel() {
			return model;
		}

		public void setModel(String model) {
			this.model = model;
		}

		public int getYear() {
			return year;
		}

		public void setYear(int year) {
			this.year = year;
		}

		public String getManufacturer() {
			return manufacturer;
		}

		public void setManufacturer(String manufacturer) {
			this.manufacturer = manufacturer;
		}

		public String getColor() {
			return color;
		}

		public void setColor(String color) {
			this.color = color;
		}

		public Car(String model, int year, String manufacturer, String color) {
			super();
			this.model = model;
			this.year = year;
			this.manufacturer = manufacturer;
			this.color = color;
		}

	}

	private List<Car> carsSmall;

	static {
		colors = new String[10];
		colors[0] = "Black";
		colors[1] = "White";
		colors[2] = "Green";
		colors[3] = "Red";
		colors[4] = "Blue";
		colors[5] = "Orange";
		colors[6] = "Silver";
		colors[7] = "Yellow";
		colors[8] = "Brown";
		colors[9] = "Maroon";

		manufacturers = new String[10];
		manufacturers[0] = "Mercedes";
		manufacturers[1] = "BMW";
		manufacturers[2] = "Volvo";
		manufacturers[3] = "Audi";
		manufacturers[4] = "Renault";
		manufacturers[5] = "Opel";
		manufacturers[6] = "Volkswagen";
		manufacturers[7] = "Chrysler";
		manufacturers[8] = "Ferrari";
		manufacturers[9] = "Ford";
	}

	public TableBean() {
		carsSmall = new ArrayList<Car>();

		populateRandomCars(carsSmall, 9);
	}

	private void populateRandomCars(List<Car> list, int size) {
		for (int i = 0; i < size; i++)
			list.add(new Car(getRandomModel(), getRandomYear(), getRandomManufacturer(), getRandomColor()));
	}

	public List<Car> getCarsSmall() {
		return carsSmall;
	}

	private int getRandomYear() {
		return (int) (Math.random() * 50 + 1960);
	}

	private String getRandomColor() {
		return colors[(int) (Math.random() * 10)];
	}

	private String getRandomManufacturer() {
		return manufacturers[(int) (Math.random() * 10)];
	}

	private String getRandomModel() {
		return UUID.randomUUID().toString().substring(0, 8);
	}

	public String[] getManufacturers() {
		return manufacturers;
	}

	public String[] getColors() {
		return colors;
	}
}
I removed the ui:composition, don't know if anything's wrong in your basic template.

If that doesn't work for you something in configuration is wrong.
- do standard JSF tags work?
- does a standard JSF datatable work?
- do other primefaces components work?
- can you upgrade to the lastet JSF version?

bikinurse
Posts: 5
Joined: 17 May 2012, 16:30

19 May 2012, 14:35

T.dot, I copied Your code and it works lyk magic.
Thanks a million tym. And thank you for reminding me the rules, u see sometyms breaking rules pays ;)
:D :D :D :D

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 67 guests