The preferred way of including Wicket is via a ServletFilter, which also requires a filter-mapping (see http://cwiki.apache.org/WICKET/migrate-13.html). So you define the mapping in web.xml, e.g.
<filter-mapping> <filter-name>MyApp</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Relative URLs work if you specify the pattern "/app/*", but fail if it is "/*" (see this thread). Regards, Oliver Johan Compagner wrote: > > But a mapping shouldnt matter to much. With the filter there should be > no need for a filter mapping like a servlet. > > Johan > > 2007/12/4, Oliver Lieven <[EMAIL PROTECTED]>: >> >> Hi, I encountered this problem a week ago, too, and digged a little into >> code >> and forum. Here's my summary: >> >> the problem seems to be the "/*" filter mapping. If you specify a >> "/app/*" >> filter mapping, relative URLs work just fine. >> >> In my base-page-class (all my pages are derived from it through Wicket's >> great markup inheritance) my stylesheet is referenced in the >> head-section >> by a relative reference like >> >> <link rel="stylesheet" type="text/css" href="style/myapp.css" /> >> >> Checking the generated HTML in the browser (when using "/*" filter >> mapping) >> shows that this reference is modified by Wicket, so that it now reads >> >> <link rel="stylesheet" type="text/css" href="../style/myapp.css" /> >> >> This is an invalid path and addresses a wrong location. >> >> I digged into the code and found that relative stylesheet and image >> references where >> automatically prepended by "../" by >> ServletWebRequest.getRelativePathPrefixToContextRoot(). >> >> This seems to work well for the "/app/*" filter mapping, but fails for >> "/*" >> (since theres no parent-directory in between to skip) >> >> I currently decided to use the "/app/*" filter mapping. >> >> >> Following workarounds came into my mind: >> >> 1. use of "absolute" references like "/myapp/style/myapp.css". >> pro: works, Wicket doesn't modify the absolute paths >> cons: must code the context-path into all style and image references, >> which is a "NO GO" >> >> 2. use of "/app/*" filter mapping >> pro : works >> cons: after having seen the much nicer "/*" mapping I want to use it >> :-)) >> >> 3. in HTML it is possible to add a <base >> href="http://localhost:8080/myapp/"/> >> line into the head section, which is used to resolve all relative >> references >> pro : would be great, since it allows the use of relative URLs, and it >> must >> be configured in just one place (the base-page's head section) >> would also be great to use when using a front end server >> (Apache), >> since references would be resolved to root context >> cons: since Wicket isn't aware of the <base> tag, relative references >> are still modified and prepended by "../", so no >> stylesheets/images >> were found >> >> 4. fix it :-)) >> >> Related threads and infos: >> - "is it a bug" - use of /* filter mapping - >> http://www.nabble.com/is-it-a-bug--%28using-beta-4%29-tf4649929.html#a13284326 >> >> >> - "Wicket behind a frontend proxy" - >> http://www.nabble.com/Wicket-behind-a-front-end-proxy-t4776982.html >> >> - >> http://cwiki.apache.org/WICKET/best-practices-and-gotchas.html#BestPracticesandGotchas-WicketServletMapping >> >> >> >> >> Jeremy Levy-3 wrote: >> > >> > WICKET-1205 >> > >> > On Dec 3, 2007 5:16 PM, Jeremy Levy <[EMAIL PROTECTED]> wrote: >> > >> >> Sorry for now explaining this properly. My application is deployed >> within >> >> a context of "/1". The Wicket filter is mapped to "/*" of the app >> >> context. >> >> >> >> The first page of the site has url of >> >> http://www.somehost.com/1/welcomewhere "welcome" is mounted as a >> >> bookmarkable page. There is a link from the >> >> "welcome" page to a page that isn't bookmarked. The relative path of >> the >> >> CSS is incorrect on the page that isn't mounted as a bookmarkable >> page. >> >> If >> >> I make it bookmarkable the path to the CSS its correct. >> >> >> >> I'm going to create a quickstart project to demonstrate it and log a >> bug. >> >> >> >> J >> >> >> >> >> >> >> >> >> >> >> >> On Dec 3, 2007 4:40 PM, Johan Compagner <[EMAIL PROTECTED]> wrote: >> >> >> >> > huh? i must be missing something here. >> >> > you say to the first that it works and to the second that it doesn't >> >> > if /1 is the context then would say the first is broken and the >> second >> >> > should work. >> >> > >> >> > because the first the url is this: >> >> > >> >> > localhost/css/style.css >> >> > >> >> > but thats outside of the context. >> >> > >> >> > the second it seems to be >> >> > >> >> > localhost/1/css/xxx >> >> > >> >> > and that seems ok then >> >> > >> >> > But it is still strange that those 2 pages give different urls >> because >> >> > both >> >> > should be css/ as far as i see >> >> > because they are on both on the same level. >> >> > >> >> > Please make a jira issue for this >> >> > >> >> > johan >> >> > >> >> > >> >> > >> >> > On Dec 3, 2007 4:08 PM, Jeremy Levy < [EMAIL PROTECTED]> wrote: >> >> > >> >> > > The /1 is the web app context. >> >> > > >> >> > > Change it to ../ breaks it on the pages that were working before. >> >> > > >> >> > > One thing I noticed is that if I deploy this to a server which has >> >> > > mod_proxy >> >> > > set up to hide the /1 it seems to work fine. >> >> > > >> >> > > j >> >> > > >> >> > > On Dec 3, 2007 4:10 AM, Johan Compagner <[EMAIL PROTECTED] > >> >> wrote: >> >> > >> >> > > >> >> > > > and /1/ is your servlyet path? >> >> > > > what happens if you put "../css/style.css" in your markup? >> >> > > > >> >> > > > Because from the normal page that is the css you want i guess? >> >> > > > >> >> > > > johan >> >> > > > >> >> > > > >> >> > > > >> >> > > > On Dec 2, 2007 11:08 PM, Jeremy Levy <[EMAIL PROTECTED]> wrote: >> >> > > > >> >> > > > > I just upgraded to Wicket 1.3, it was remarkably smooth. It >> took >> >> > > about >> >> > > > 6 >> >> > > > > hours overall. Every single thing was explained very well in >> the >> >> > > > > migration >> >> > > > > guide and the things i was looking forward to in 1.3 are >> working >> >> > > > > perfectly. >> >> > > > > >> >> > > > > The only issue I am having is if I have a page this is not >> >> mounted >> >> > as >> >> > > a >> >> > > > > bookmarkable page the relative paths for my stylesheet and >> other >> >> > > > resources >> >> > > > > are written out incorrect. Below are examples for the same >> page >> >> > if I >> >> > > > > mount >> >> > > > > the page versus not. >> >> > > > > >> >> > > > > >> >> > > > > *Bookmarked Page URL (works):* >> >> > > > > http://localhost/1/gettingstarted >> >> > > > > >> >> > > > > <link rel="stylesheet" type="text/css" >> href="../css/style.css"/> >> >> > > > > >> >> > > > > >> >> > > > > *Nonbookmarked Page URL (doesn't work): >> >> > > > > * >> >> > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> >> >> http://localhost/1/?x=5uwbo6kafiblurBY3bq1UEFwOyXneRheYz2FfwYwMiQAxP5GPHI1HfUHBUhydOCe >> >> > > > > >> >> > > > > <link rel="stylesheet" type="text/css" href="css/style.css"/> >> >> > > > > >> >> > > > > >> >> > > > > *As it's written in my base page html:* >> >> > > > > <link rel="stylesheet" type="text/css" href="css/style.css"/> >> >> > > > > >> >> > > > > Is this something I missed in the migration, or a left over, >> bug >> >> > > maybe? >> >> > > > > >> >> > > > > Jeremy >> >> > > > > >> >> > > > >> >> > > >> >> > >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Wicket-1.3-rc1-Relative-URLs-not-working-properly-tf4933399.html#a14150416 >> Sent from the Wicket - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Wicket-1.3-rc1-Relative-URLs-not-working-properly-tf4933399.html#a14165554 Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
