trouble in AJAX Datatable

UI Components for JSF
Post Reply
leffe
Posts: 8
Joined: 09 Nov 2009, 17:20
Location: Belgium

12 Nov 2009, 17:37

hello all

i am a new primeFaces user, i am trying to make the demo "AJAX Datatabke" available, but i encounter the following problems.

Nov 12, 2009 4:27:17 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
WARNING: java.lang.String cannot be cast to java.util.Collection
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Collection
at org.primefaces.ui.component.collector.Collector.processAction(Collector.java:56)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
at javax.faces.component.UICommand.broadcast(UICommand.java:372)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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)
Nov 12, 2009 4:27:17 PM com.sun.faces.lifecycle.Phase doPhase
SEVERE: JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /hello.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@93c4f1]
Nov 12, 2009 4:27:17 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Collection
at org.primefaces.ui.component.collector.Collector.processAction(Collector.java:56)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
at javax.faces.component.UICommand.broadcast(UICommand.java:372)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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)

my xhtml file is described as below

<?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" xml:lang="en" lang="en"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<head>
<title>hello</title>
<p:resources />
</head>

<f:view contentType="text/html">
<body>
<h:form>
<p:panel header="New Book">
<h:panelGrid columns="2">
<h:outputLabel value="Title :" for="txt_title"></h:outputLabel>
<h:inputText id="txt_title" value="# {createBookBean.book.title}"
required="true" />

<h:outputLabel value="Author :" for="txt_author"></h:outputLabel>
<h:inputText id="txt_author"
value="# {createBookBean.book.author}" required="true" />

<p:commandButton value="Reset" type="reset" />

<p:commandButton value="Add" action="# {createBookBean.createNew}"
async="true" update="books">
<p:collector value="# {createBookBean.book}" addTo="# {createBookBean.books}" />
</p:commandButton>
</h:panelGrid>
</p:panel>

<p:dataTable id="books" value="# {createBookBean.books}" var="book">
<p:column>
<f:facet name="header">
<h:outputText value="Title" />
</f:facet>
<h:outputText value="# {book.title}" />
</p:column>

<p:column>
<f:facet name="header">
<h:outputText value="Author" />
</f:facet>
<h:outputText value="# {book.author}" />
</p:column>
</p:dataTable>
</h:form>
</body>
</f:view>
</html>

my domain and bean are described as below

public class Book {
private String author;
private String title;
public Book(){
}

public String getAuthor() {
return author;
}
public void setAuthor(String author) {
System.out.println("-----set author----");
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
System.out.println("-----set title----");
this.title = title;
}
}

import java.util.List;
import com.vub.domain.Book;

public class CreateBookBean {
private List<Book> books;
private Book book = new Book();
public void createNew(){
System.out.println("-----add book start----");
Book book = new Book();
book.setTitle(this.book.getTitle());
book.setAuthor(this.book.getAuthor());
books.add(book);
System.out.println("-----add book end----");
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
}

can anyone help me out of the problems? thanks in advance!

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

13 Nov 2009, 14:37

You need to remove the whitspace in EL expressions;

Code: Select all

<p:collector value="# {createBookBean.book}" addTo="# {createBookBean.books}" /> 
Should be;

Code: Select all

<p:collector value="#{createBookBean.book}" addTo="#{createBookBean.books}" /> 

leffe
Posts: 8
Joined: 09 Nov 2009, 17:20
Location: Belgium

13 Nov 2009, 16:05

many thanks for your reply, cagatay.civici! i changed my xhtml code as you said; now i get the new error message in below. i can see that the title and author are set to the book instance; but the createNew method has never been called. do not why...............

Nov 13, 2009 2:54:06 PM com.sun.faces.lifecycle.Phase doPhase
SEVERE: JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /hello.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@14256df]
Nov 13, 2009 2:54:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at org.primefaces.ui.component.collector.Collector.processAction(Collector.java:58)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
at javax.faces.component.UICommand.broadcast(UICommand.java:372)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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)

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 56 guests