public
classRefreshablePagedListHolder
extends PagedListHolder
Overview
Inheritance
Members
Usage
Source
Books
Since24.05.2003
VersionNot specified.
Author(s)Jean-Pierre Pawlak, Juergen Hoeller
RefreshablePagedListHolder is a PagedListHolder subclass with reloading capabilities.
It automatically re-requests the List from the source provider, in case of Locale or
filter changes.
Data binding works just like with PagedListHolder. The locale can be specified in
Locale's toString syntax, e.g. "locale=en_US". The filter object can be of any
custom class, preferably a bean for easy data binding from a request. An instance
will simply get passed through to PagedListSourceProvider.loadList. A filter property
can be specified via "filter.myFilterProperty", for example.
The scenario in the controller could be:
RefreshablePagedListHolder holder = request.getSession("mySessionAttr");
if (holder == null) {
holder = new RefreshablePagedListHolder();
holder.setSourceProvider(new MyAnonymousOrEmbeddedSourceProvider());
holder.setFilter(new MyAnonymousOrEmbeddedFilter());
request.getSession().setAttribute("mySessionAttr", holder);
}
holder.refresh(false);
BindException ex = BindUtils.bind(request, listHolder, "myModelAttr");
return ModelAndView("myViewName", ex.getModel());
...
private class MyAnonymousOrEmbeddedSourceProvider implements PagedListSourceProvider {
public List loadList(Locale locale, Object filter) {
MyAnonymousOrEmbeddedFilter filter = (MyAnonymousOrEmbeddedFilter) filter;
}
private class MyAnonymousOrEmbeddedFilter {
private String name = "";
public String getName() {
return name;
public void setName(String name) {
this.name = name;
}
}
Data binding works just like with PagedListHolder. The locale can be specified in Locale's toString syntax, e.g. "locale=en_US". The filter object can be of any custom class, preferably a bean for easy data binding from a request. An instance will simply get passed through to PagedListSourceProvider.loadList. A filter property can be specified via "filter.myFilterProperty", for example.
The scenario in the controller could be:
RefreshablePagedListHolder holder = request.getSession("mySessionAttr");
if (holder == null) {
holder = new RefreshablePagedListHolder();
holder.setSourceProvider(new MyAnonymousOrEmbeddedSourceProvider());
holder.setFilter(new MyAnonymousOrEmbeddedFilter());
request.getSession().setAttribute("mySessionAttr", holder);
}
holder.refresh(false); BindException ex = BindUtils.bind(request, listHolder, "myModelAttr");
return ModelAndView("myViewName", ex.getModel());
...
private class MyAnonymousOrEmbeddedSourceProvider implements PagedListSourceProvider {
public List loadList(Locale locale, Object filter) {
MyAnonymousOrEmbeddedFilter filter = (MyAnonymousOrEmbeddedFilter) filter;
}
private class MyAnonymousOrEmbeddedFilter {
private String name = "";
public String getName() {
return name;
public void setName(String name) {
this.name = name;
}
}