Hi, I implemented your version but still I get the same error, if I have the Google Analytics Code in the head.
Could it be an error with the way I insert the Google Analytics Code? I do it in the following way. In my WebPage class I overwrite the following method: @Override public void renderHead(HeaderResponse response) { String script = "var _gaq = _gaq || ..."; response.renderJavaScript(script, null); } Andre On Wed, 11 Apr 2012 11:38:52 +0200 Bas Gooren <b...@iswd.nl> wrote: > Well, for starters I wonder why you are using multiple > LoadableDetachableModels in a Vector? > > What we do 99% of the time is this: > - Wrap the entire resultset in a LDM > - Feed that LDM to a ListView or a variant (we have a custom > RepeatingView for paged database listings) > - Use PropertyModels inside the repeater item(s) (or not, since the > ListView will refresh itself anyway) > > I'm pretty sure you don't need setReuseItems(true) in this case; The > only reason I've seen where it's required on a ListView is when you use > it inside a form and need form validation to work. Since I don't see any > form fields inside your listview I guess this is not the case. > > I also wonder why you had "datacontainer.setVersioned(false)"? > > E.g.: > > private void displayResults(IModel<List<DefaultSearchResult>> results, int > entriesPerPage) { > WebMarkupContainer datacontainer = new > WebMarkupContainer("listviewContainer"); > datacontainer.setOutputMarkupId(true); > add(datacontainer); > > PageableListView<DefaultSearchResult> listview = new > PageableListView<DefaultSearchResult>("listview", results, entriesPerPage) { > StringBuilder sb; > > @Override > protected void populateItem(ListItem<DefaultSearchResult> item) { > DefaultSearchResult s = item.getModelObject(); > > // Either (A) > item.add(new ExternalLink("title", new > PropertyModel(item.getModel(), "title")); > // Or (B) > item.add(new ExternalLink("title", s.getTitle()); > > item.add(new Label("description", new > PropertyModel(item.getModel(), "description"))); > item.add(new Label("time", > s.getTime()).setEscapeModelStrings(false)); > } > }; > > datacontainer.add(listview); > AjaxPagingNavigator apn = new AjaxPagingNavigator("navigator", > listview){ > @Override > protected void onAjaxEvent(AjaxRequestTarget target) { > super.onAjaxEvent(target); > target.appendJavaScript("scrollTo(0,0)"); > } > }; > datacontainer.add(apn); > } > > > > > Op 11-4-2012 11:22, schreef wic...@faustas.de: > > Hi, > > > > thank you for the answer. > > > > The "they are not completely empty" means the following. My results variable > > is a Vector that contains LoadableDetachableModel's in the form of the > > LoaableListingEntryModel. This model contains a class that has two variables > > that I access with getResults() and getTime(). > > The content of the getResults() variable is a class that implements the > > Serializable > > interface. The getTime() variable just has a Vector with time strings. > > > > Now comes the interesting part. When I click on one of the links from the > > PagingNavigator, the content of the getTime() variable is displayed in each > > single ListItem. The getResults() class is empty. The content of the > > getResults() > > class is only shown after a page reload and once again empty after clicking > > on one of the links from the PagingNavigator. > > That's the reason why I said it is "not completely empty". > > > > I know that there are 60 results to display. The PagingNavigator shows 6 > > links for 10 entries per page. But after clicking on one of the links, the > > objects > > from the getResults() class are empty. > > > > Any idea? > > Andre > > > > ----- Original Message ----- > > From: b...@iswd.nl > > To: users@wicket.apache.org > > Date: 11.04.2012 00:51:38 > > Subject: Re: Page Expired with Google Analytics Tracking Code > > > > > >> Hi, > >> > >> It sounds a lot like you are not using models properly. E.g. your > >> "results" method parameter has a length which overflows the page size > >> (and thus the pagingnavigator renders page links), but on a second > >> request the contents of "results" are null/empty? > >> > >> Try debugging PageableListView#populateItem() and check what its model > >> points to. > >> > >> Can you be more specific with regard to "they are not completely empty"? > >> What exactly do you see, and what do you expect? > >> > >> Kind regards, > >> > >> Bas > >> > >> Op 10-4-2012 22:19, schreef Andre Schütz: > >>> Hi, > >>> > >>> nobody an idea why the PageableListView is empty after clicking > >>> on one of the links from the PagingNavigator? > >>> After reloading of the page, the PageableListView is filled and > >>> once again empty when I click on oe of the links from the > >>> PagingNavigator. > >>> > >>> It seems, that the Listitem's are empty when I click on one of > >>> the links in the PagingNavigator. But there are definitely more > >>> items than just for one page and the PagingNavigator shows 6 > >>> possible pages. > >>> > >>> Thanks, > >>> Andre > >>> > >>> On Mon, 9 Apr 2012 19:44:34 +0200 > >>> Andre Schütz<wic...@faustas.de> wrote: > >>> > >>>> Hello, > >>>> > >>>> I tried your approach and could find one mistake in my code. > >>>> After the stepwise adding of the components to my results page, > >>>> I found an error in two of my classes that are used on that page. > >>>> These two classes did not implement the Serializable interface. > >>>> I added the interface to these two classes and the PageExpired > >>>> error was gone. > >>>> > >>>> But there is still another error. My PageableListView does not > >>>> display the results when I click on one of the links in the > >>>> AjaxPagingNavigator. The first page is displayed but the other > >>>> pages in the list are nearly empty. > >>>> They are not completely empty. I have 3 elements in an item of > >>>> the PageableListView populateItem Method that must be filled > >>>> in the html page. > >>>> The elements are title, description and time. > >>>> > >>>> My code looks as follows: > >>>> > >>>> /*************** > >>>> * Code > >>>> */ > >>>> > >>>> private void displayResults(Vector<LoadableListingEntryModel> results, > >>>> int entriesPerPage) { > >>>> WebMarkupContainer datacontainer = new > >>>> WebMarkupContainer("listviewContainer"); > >>>> datacontainer.setOutputMarkupId(true); > >>>> add(datacontainer); > >>>> > >>>> PageableListView listview = new PageableListView("listview", > >>>> results, entriesPerPage) { > >>>> StringBuilder sb; > >>>> > >>>> @Override > >>>> protected void populateItem(ListItem item) { > >>>> if (item != null) { > >>>> LoadableListingEntryModel model = > >>>> (LoadableListingEntryModel)item.getModelObject(); > >>>> DefaultSearchResult s = model.getObject().getResult(); > >>>> String description = s.getDescription(); > >>>> String title = s.getTitle(); > >>>> > >>>> item.add(new ExternalLink("title", title)); > >>>> item.add(new Label("description", description)); > >>>> item.add(new Label("time", > >>>> s.getTime()).setEscapeModelStrings(false)); > >>>> } > >>>> } > >>>> }; > >>>> > >>>> listview.setReuseItems(true); > >>>> datacontainer.add(listview); > >>>> AjaxPagingNavigator apn = new AjaxPagingNavigator("navigator", > >>>> listview){ > >>>> @Override > >>>> protected void onAjaxEvent(AjaxRequestTarget target) { > >>>> super.onAjaxEvent(target); > >>>> target.appendJavaScript("scrollTo(0,0)"); > >>>> } > >>>> }; > >>>> datacontainer.add(apn); > >>>> datacontainer.setVersioned(false); > >>>> } > >>>> > >>>> /*************** > >>>> * Code > >>>> */ > >>>> > >>>> The LoadableListingEntryModel was one of the two classes > >>>> that got the Serializable interface. > >>>> When I click on one of the links of the AjaxPagingNavigator, > >>>> the title and the description fields are emtpy. The time > >>>> field is filled. > >>>> > >>>> I checked the items and have e.g. 60 items with title, > >>>> description and time content. But only the time content > >>>> is displayed, when I click on one of the > >>>> AjaxPagingNavigator links. > >>>> > >>>> This error only occurs, if the Google Adsense Code is > >>>> in the site. Could it be possible, that the Ajax call of > >>>> the PageableListView has a problem? > >>>> > >>>> Thanks, > >>>> Andre > >>>> > >>>> On Sat, 07 Apr 2012 21:46:53 +0200 > >>>> Bas Gooren<b...@iswd.nl> wrote: > >>>> > >>>>> Yes. > >>>>> > >>>>> Op 7-4-2012 20:37, schreef Andre Schütz: > >>>>>> Thank you for the answer, I will try your 4 steps. > >>>>>> > >>>>>> Just as information. When you say, that I can make the form > >>>>>> stateless, do you talk about the StatelessForm class? > >>>>>> > >>>>>> Andre > >>>>>> > >>>>>> On Sat, 07 Apr 2012 16:06:15 +0200 > >>>>>> Bas Gooren<b...@iswd.nl> wrote: > >>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> I would suggest the following: > >>>>>>> 1) add a very simple test page: TestPage extends WebPage, which only > >>>>>>> has > >>>>>>> the search form on it (nothing else!) > >>>>>>> 2) see if that works multiple times in a row > >>>>>>> 3) if that works, add your google analytics code > >>>>>>> 4) repeat steps 1-2 > >>>>>>> > >>>>>>> In other words: eliminitate all other dependencies, so you can test > >>>>>>> (in > >>>>>>> isolation) if the google analytics code (or the component you've > >>>>>>> wrapped > >>>>>>> it in) is really the issue you are facing. > >>>>>>> > >>>>>>> You say that everything works ok when you add the query parameter for > >>>>>>> the search. Having that parameter means you have a form with > >>>>>>> method="get"? That, to me, would indicate you can make the form > >>>>>>> stateless, which should prevent your search from redirecting to a > >>>>>>> stateful url. (The /wicket/page start of the url indicates a stateful > >>>>>>> page). > >>>>>>> > >>>>>>> But please start with steps 1-4 above to make sure you are looking in > >>>>>>> the right place for the cause of your PageExpiredException. > >>>>>>> > >>>>>>> Bas > >>>>>>> > >>>>>>> Op 7-4-2012 14:04, schreef Andre Schütz: > >>>>>>>> Hi, > >>>>>>>> > >>>>>>>> I tested the page and could localize the following error: > >>>>>>>> > >>>>>>>> page expired: > >>>>>>>> > >>>>>>>> http://localhost:8080/wicket/page?7-1.IFormSubmitListener-resultsContent-searchPanel-searchForm > >>>>>>>> > >>>>>>>> This means. The error occurs, when I make another search via my > >>>>>>>> search form which is a normal Form with a textfield and a submit > >>>>>>>> button. But, when I change the keyword in the URL (represented as > >>>>>>>> q=KEYWORD parameter), the search works without the error. > >>>>>>>> It seems, that the Form throws the error when the Google Analytics > >>>>>>>> Code is in the header. > >>>>>>>> > >>>>>>>> Any idea how I can solve that problem? > >>>>>>>> > >>>>>>>> Andre > >>>>>>>> > >>>>>>>> On Fri, 06 Apr 2012 19:36:28 +0200 > >>>>>>>> Bas Gooren<b...@iswd.nl> wrote: > >>>>>>>> > >>>>>>>>> Hi Andre, > >>>>>>>>> > >>>>>>>>> No, we have been using the tracking code for years with wicket > >>>>>>>>> (1.3, 1.4 > >>>>>>>>> and 1.5) with 0 issues. > >>>>>>>>> > >>>>>>>>> I'm certain your Page expired error is caused by something else. > >>>>>>>>> > >>>>>>>>> From your description it sounds like your "search results" > >>>>>>>>> page is > >>>>>>>>> stateful, but no longer available when you perform a new search. > >>>>>>>>> That > >>>>>>>>> can happen for a variety of reasons. > >>>>>>>>> What usually happens to narrow the problem down is to strip the > >>>>>>>>> page as > >>>>>>>>> far as possible, and see if it works. Incrementally add components > >>>>>>>>> until > >>>>>>>>> it breaks again and you will have found the culprit. > >>>>>>>>> > >>>>>>>>> Another possibility is that you have non-standard settings for > >>>>>>>>> wicket > >>>>>>>>> session (page) management. But my guess is that this is not the > >>>>>>>>> case. > >>>>>>>>> > >>>>>>>>> Kind regards, > >>>>>>>>> > >>>>>>>>> Bas > >>>>>>>>> > >>>>>>>>> Op 6-4-2012 19:25, schreef Andre Schütz: > >>>>>>>>>> Hello, > >>>>>>>>>> > >>>>>>>>>> did nobody have the same problem with the new Google Analytics > >>>>>>>>>> code? > >>>>>>>>>> > >>>>>>>>>> I added the code directly into the .html file of my WebPage class. > >>>>>>>>>> > >>>>>>>>>> Andre > >>>>>>>>>> > >>>>>>>>>> On Thu, 5 Apr 2012 14:54:50 +0200 > >>>>>>>>>> Andre Schütz<wic...@faustas.de> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hello, > >>>>>>>>>>> > >>>>>>>>>>> we added the actual Google Analytics Tracking Code into our > >>>>>>>>>>> Wicket application. The code is rendered on every single > >>>>>>>>>>> page directly before the closing</head> tag. > >>>>>>>>>>> > >>>>>>>>>>> Our problem is the following: > >>>>>>>>>>> Page 1 with search box -> search for something > >>>>>>>>>>> Page 2 is a search site where the search request is done > >>>>>>>>>>> Page 3 is the result page, where the search result is presented > >>>>>>>>>>> > >>>>>>>>>>> We do: > >>>>>>>>>>> Page 1 -> search for something > >>>>>>>>>>> Page 2 appears and shows search progress > >>>>>>>>>>> Page 3 appears and displays the results > >>>>>>>>>>> Page 3 has a search box and we start another search > >>>>>>>>>>> --> Page expired error > >>>>>>>>>>> > >>>>>>>>>>> Any ideas why this happens and how we can stop that? > >>>>>>>>>>> > >>>>>>>>>>> Thanks, > >>>>>>>>>>> Andre > >>>>>>>>>>> > >>>>>>>>>>> -- > >>>>>>>>>>> Andre Schütz<wic...@faustas.de> > >>>>>>>>>>> > >>>>>>>>>>> --------------------------------------------------------------------- > >>>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>>>>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org > >>>>> --------------------------------------------------------------------- > >>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>>>> For additional commands, e-mail: users-h...@wicket.apache.org > >>>> -- > >>>> Andre Schütz<wic...@faustas.de> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>>> For additional commands, e-mail: users-h...@wicket.apache.org > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >> For additional commands, e-mail: users-h...@wicket.apache.org > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org -- Andre Schütz <wic...@faustas.de> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org