Hi,

The problem was that I had no get/setters in my Bean I displayed..

Now it renders well on the first page but when I click on the second page I
have:

Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: Could not
find a coercion from type java.lang.String to type java.util.Set.

I think this is because the url looks like this:
http://localhost:8090/***/searchstreet.grid.pager/2?t:ac=model.Street$0040141f225/model.Street$0040868971.
..

And Tapestry thinks "model.Street$0040141f225" is a String but it should be
a Bean.

I tried adding Serializable on my Street bean but it doesn't change the
error.

Any idea?

Regards,
Morgan


2016-04-25 16:05 GMT+02:00 Barry Books <trs...@gmail.com>:

> Use @pageactvation context and put what's in your onSucess method in
> setupRender
>
> On Monday, April 25, 2016, Morgan Hautman <morgan.haut...@gmail.com>
> wrote:
>
> > Hi,
> >
> > Thank you guys.
> > I first tried the fix stated by Felix (@PageActivationContext) but it
> > doesn't work.
> > I then tried the ajax way Nathan provided and I have better results but
> my
> > grid shows 4 pages/links but I don't see any data.
> >
> > I added
> >
> >         <t:zone t:id="zoneGrid" id="zoneGrid">
> >             <div/>
> >             <t:grid source="streets" row="street">
> >             *[Grid here]*
> >             </t:grid>
> >         </t:zone>
> >
> > but still no luck, any one has a pointer?
> >
> > Regards,
> > Morgan
> >
> > 2016-04-25 12:07 GMT+02:00 Nathan Quirynen <nat...@pensionarchitects.be
> > <javascript:;>>:
> >
> > > Hey,
> > >
> > > By returning "this" in the onSuccess event, a redirect happens
> resulting
> > > in a new request. If you want to preserve data between requests, you
> will
> > > have to save it into the http session.
> > > If you add http session persistence, the data will be available after a
> > > new request. <http://tapestry.apache.org/persistent-page-data.html>
> > >
> > > Simple example for your case:
> > >
> > > @Persist
> > > @Property
> > > private Set<Street> streets;||
> > >
> > >
> > > Be careful: in this case the whole streets set is saved into the http
> > > session and will remain there until the end of the session (or until
> you
> > > remove it manually).
> > > You could also persist the form vaues instead and then in setupRender
> > > event fill the trees set based on these values.
> > > Also you can make use of PersistenceConstants.FLASH to let Tapestry
> > remove
> > > it from the session after first access automatically.
> > > See more info: http://tapestry.apache.org/persistent-page-data.html||
> > >
> > > Another option is making use of AJAX where the updated grid html is
> sent
> > > back in the response and updated on the client side. If you want to
> > achieve
> > > this you'll need to add a Zone around the grid and make your Form
> submit
> > > with AJAX.
> > >
> > > Your case:
> > >
> > > <t:form t:zone="zoneGrid">
> > >     ...
> > >     <t:zone t:id="zoneGrid" id="zoneGrid"
> > >         <t:grid source="streets" row="street">
> > >         </t:grid>
> > >     </t:zone>
> > > <t:form>
> > >
> > > @Inject
> > > private AjaxResponseRenderer ajax;
> > > @InjectComponent
> > > private Zone zoneGrid;
> > >
> > > void onSuccess() {
> > >     ...
> > >     ajax.addRender(zoneGrid);
> > > }
> > >
> > > See more info: http://tapestry.apache.org/ajax-and-zones.html
> > >
> > >
> > > Hope this helps u a bit.
> > > Nathan
> > >
> > >
> > > On 25/04/16 11:05, Morgan Hautman wrote:
> > >
> > >> Hi,
> > >>
> > >> I'm trying to make a make grid update when submitting a form within
> the
> > >> same page.
> > >>
> > >> Here is the code:
> > >> https://gist.github.com/mhautman/e178fdcca46331e1f4932b1cd7074de7
> > >>
> > >> The page gets refreshed but the table/source doesn't seem to be
> updated.
> > >>
> > >> Any help is greatly appreciated.
> > >>
> > >> Regards,
> > >> Morgan
> > >>
> > >>
> > >
> >
>

Reply via email to