You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Walter Oliver (BR/ICI3)" <ol...@boschrexroth.de> on 2007/05/15 11:29:25 UTC
dataScroller, ListDataModel and saveState
Hello all,
i have trouble to get a dataTable with dataScroller to work.
I have a ManagedBean wich get a result from search in database.
code:
public class SearchBean {
List result;
public void validateSearch(FacesContext context,
UIComponent componentToValidate, Object value)
throws ValidatorException {
result = SearchDAO.findByName(value.toString());
if(result.isEmpty()){
FacesMessage message = new FacesMessage(
"No result found with name " +
value.toString()+ "!");
throw new ValidatorException(message);
}
}
public List getResult() {
return this.result;
}
}
If i configure the the bean in request scope, the 1. page looks
fine (rows 1-10 from e.g. 30), but if paginate or forward to the
next page, result is empty.
I found out this is normal behaviour with JSF and request scope, so no
matter
and i changed the scope to session. With that configured everything
works well.
But on http://wiki.apache.org/myfaces/FAQ i found the follwing info:
"t:saveState is preffered over a session scoped solution."
As well i don`t need the whole result the whole session in memory.
What i did now is:
added <t:saveState id="searchresult" value="#{searchbean.result}" /> in
result.jsp
added "implements Serializable" to SearchBean and
set scope back to "request".
But now i get the exception:
62001 [http-8080-Processor24] ERROR
org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase
- Row is not available. Rowindex = 0
65135 [http-8080-Processor24] ERROR
org.apache.myfaces.lifecycle.PhaseListenerManager - Exception in
PhaseListener RESTORE_VIEW(1) afterPhase
java.lang.NullPointerException
at
org.apache.myfaces.renderkit.html.util.AutoScrollPhaseListener.afterPhas
e(AutoScrollPhaseListener.java:52)
...
javax.faces.el.PropertyNotFoundException: Bean:
com.jmangos.beans.SearchBean, property: result
at
org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverI
mpl.java:391)
What did next was to wrap result in ListDataModel, but the i get
java.io.NotSerializeableException: ListDataModel.
Does anybody know a good tutorial, on how to work with dataTable and
dataScroller on request scoped beans?
How can i use saveState on result?
Regards Oliver