Does this module exist at java.net or sf ? > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Matt Ho > Sent: Friday, 3 October 2003 4:55 PM > To: [EMAIL PROTECTED] > Subject: Re: [OS-webwork] Advanced URL mapping? > > > Put it into webwork-optional module of the webwork repository. > > M > > Cameron Braid wrote: > > I don't mind where it goes. > > > > I can remove the CoolUriServletDispatcher if you want. > > > > Should we setup a WebWork2-extensions project on java.net ? > > > > > >>-----Original Message----- > >>From: [EMAIL PROTECTED] > >>[mailto:[EMAIL PROTECTED] On > >>Behalf Of Mike Cannon-Brookes > >>Sent: Friday, 3 October 2003 11:51 AM > >>To: [EMAIL PROTECTED] > >>Subject: Re: [OS-webwork] Advanced URL mapping? > >> > >> > >>Can I just say that all of this advanced "cool" URL mapping > >>shouldn't be in WebWork core? It's an extension or addition, > >>that should be shipped separately? > >> > >>(Or more likely just written up in a Wiki document for those > >>who want to use > >>it?) > >> > >>M > >> > >>On 3/10/03 12:22 AM, "Cameron Braid" ([EMAIL PROTECTED]) > >>penned the > >>words: > >> > >> > >>>I have used cocoon before and they provide a cool url mapping > >>>techinque using matchers. > >>> > >>>I will have a think about how we can integrate something like that. > >>> > >>>For example, > >>> > >>>Syntax aside, I would like to be able to specify a match > >> > >>pattern of : > >> > >>>"/action/year/month/day" > >>> > >>>to parse /article/2003/10/02 > >>>and get a map {action=article,year=2003,month=10,day=02} > >>> > >>>Since we are trying to achive a permalink style URL, why are the > >>>parameter names required in the URL ? > >>> > >>>Also, for your original idea > >>> > >>>/article/id/10 would probably be better written as > >> > >>/article/10 with a > >> > >>>matcher /(action)/(id) > >>> > >>>This type of pattern will also allow for action namespaces > >>> > >>>"/namespace/action/id" > >>> > >>>Then /customer/sale/10 -> namespace=customer, action=sale, > >> > >>id=10 Then > >> > >>>/admin/vendor/sale/10 -> namespace=/admin/vendor, > action=sale, id=10 > >>> > >>>Before we implement these ideas, what other types of URL's > >> > >>do we want > >> > >>>to try and map ? > >>> > >>>Cameron > >>> > >>> > >>> > >>> > >>>>-----Original Message----- > >>>>From: [EMAIL PROTECTED] > >>>>[mailto:[EMAIL PROTECTED] > >> > >>On Behalf > >> > >>>>Of Jérôme BERNARD > >>>>Sent: Thursday, 2 October 2003 7:21 PM > >>>>To: [EMAIL PROTECTED] > >>>>Subject: RE: [OS-webwork] Advanced URL mapping? > >>>> > >>>> > >>>>Hi Cameron, > >>>> > >>>>The more I think about the CoolURIServletDispatcher, the > >> > >>more I think > >> > >>>>it is too much limited. For example I changed the > >> > >>abbreviation syntax > >> > >>>>from: http://myhost.com/article/paramValue1 to > >>>>http://myhost.com/article/articleID/paramValue1 instead of > >>>>http://myhost.com/article/article/paramValue1 . > >>>> > >>>>Why? > >>>> > >>>>Simply because most of the time your action are written that way: > >>>> > >>>>public class LoadArticleAction extends ActionSupport { > >>>> long articleID; > >>>> Article article; > >>>> // getter & setter for the above members > >>>> // other methods omitted... > >>>>} > >>>> > >>>>If you use a parameter named "article" (by using the same > >> > >>parameter > >> > >>>>name as the one from the action) then you will need to use weird > >>>>method names in order to retreive the real object linked > >> > >>to this id. > >> > >>>>Anyway, I think we should write a custom ServletDispatcher > >> > >>that reads > >> > >>>>advanced mapping configuration from another xml file (or perhaps > >>>>extends webwork.xml?). > >>>> > >>>>This file could allow to use the sheme explained above but > >> > >>also deal > >> > >>>>with URL including dates (like http://myhost.com/2003/10/02). > >>>> > >>>>What do you think about this? > >>>> > >>>>Jérôme. > >>>> > >>>>Selon Cameron Braid <[EMAIL PROTECTED]>: > >>>> > >>>> > >>>>>I have madea patch to the servlet dispatcher to allow for > >>>>>extensability > >>>>>: > >>>>> > >>>>>the methods that can be overriden are > >>>>> > >>>>>protected void sendError(HttpServletRequest request, > >>>>>HttpServletResponse response, int code, Exception e) > >> > >>protected Map > >> > >>>>>getParameterMap(HttpServletRequest request) protected Map > >>>>>getSessionMap(HttpServletRequest request) protected Map > >>>>>getApplicationMap() protected String > >>>> > >>>>getActionName(HttpServletRequest > >>>> > >>>>>request) protected String > getNameSpace(HttpServletRequest request) > >>>>> > >>>>>this will allow for the core logic in the service method to > >>>> > >>>>be re-used > >>>> > >>>>>from custom servlet based dispatchers, allowing a custom URL and > >>>>>parameter mapping scheme to be implemented. > >>>>> > >>>>> > >>>>>Pat / Jason / Others : do we want to include the > >>>>>CoolUriServletDispatcher in the core ? > >>>>> > >>>>>If so, I will modify it to extend the new ServletDispatcher. > >>>>> > >>>>> > >>>>> > >>>>>>-----Original Message----- > >>>>>>From: [EMAIL PROTECTED] > >>>>>> > >> > >>[mailto:[EMAIL PROTECTED] On Behalf > >> > >>>>>>Of Jerome BERNARD > >>>>>>Sent: Tuesday, 30 September 2003 4:06 AM > >>>>>>To: [EMAIL PROTECTED] > >>>>>>Subject: Re: [OS-webwork] Advanced URL mapping? > >>>>>> > >>>>>> > >>>>>>Hum... I should have a closer look at IDEA then :-) Jérôme. > >>>>>> > >>>>>>Cameron Braid wrote: > >>>>>> > >>>>>> > >>>>>>>What IDE do you use ? > >>>>>>> > >>>>>>>Eclispe can automatically create delegator calls for you, > >>>>>> > >>>>>>which makes > >>>>>> > >>>>>>>tasks like that a piece of cake. > >>>>>>> > >>>>>>>Cam > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>>-----Original Message----- > >>>>>>>>From: [EMAIL PROTECTED] > >>>>>>>>[mailto:[EMAIL PROTECTED] On > >>>>>>>>Behalf Of Jerome BERNARD > >>>>>>>>Sent: Monday, 29 September 2003 7:26 PM > >>>>>>>>To: [EMAIL PROTECTED] > >>>>>>>>Subject: Re: [OS-webwork] Advanced URL mapping? > >>>>>>>> > >>>>>>>> > >>>>>>>>Cameron Braid wrote: > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>>Cool idea :) > >>>>>>>>> > >>>>>>>>>Though, for the implementaion, wouldn't you have been better > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>>>to use the > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>>wrapper pattern, rather than dynamic proxies :) > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>>>Sure. I thought about it, but it's quite painful: you have to > >>>>>>>>override so many methods :-( > >>>>>>>> > >>>>>>>>I'll do it tomorrow and update the attachment in the > >> > >>JIRA issue. > >> > >>>>>>>>Jérôme. > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>>Cam > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>>-----Original Message----- > >>>>>>>>>>From: [EMAIL PROTECTED] > >>>>>>>>>>[mailto:[EMAIL PROTECTED] On > >>>>>>>>>>Behalf Of Jérôme BERNARD > >>>>>>>>>>Sent: Tuesday, 30 September 2003 1:30 AM > >>>>>>>>>>To: [EMAIL PROTECTED] > >>>>>>>>>>Subject: RE: [OS-webwork] Advanced URL mapping? > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>I have created a new issue in JIRA > >>>>>>>>>> > >> > >>(http://jira.opensymphony.com/secure/ViewIssue.jspa?key=WW-326 > >> > >>>>>>>>>>) and submitted a new servlet that extends > >>>> > >>>>ServletDispatcher and > >>>> > >>>>>>>>>>provides such a functionality. I also provided a way > >>>> > >>>>to shorten > >>>> > >>>>>>>>>>even more the URL by assuming that if the first > >>>> > >>>>parameter name > >>>> > >>>>>>>>>>is not specified then it is supposed to be the name of the > >>>>>>>>>>action. > >>>>>>>>>> > >>>>>>>>>>This allows to replace the following URL > >>>>>>>>>>http://myhost.com/article/article/123 > >>>>>>>>>>with this URL http://myhost.com/article/123. > >>>>>>>>>> > >>>>>>>>>>Any code review welcomed! :-p > >>>>>>>>>> > >>>>>>>>>>Jérôme. > >>>>>>>>>> > >>>>>>>>>>Robert Douglass <[EMAIL PROTECTED]>: > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>I think this is the relevant code, from > >>>>>>>>>>>org.apache.turbine.util.parser.DefaultParameterParser. As I > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>understand > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>it, Turbine folks avoid URLs like foo/bar?id=1812 > >> > >>in favor of > >> > >>>>>>>>>>>foo/bar/id/1812. I've never used this, and I can't remember > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>right off > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>exactly how the servlet container knows which part is the > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>path info, > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>but essentially, they assume that the path info follows > >>>>>> > >>>>>>the pattern > >>>>>> > >>>>>>>>>>>name_1/value_1/...name_n/value_n. The advantage is > >>>>>> > >>>>>>supposed to be > >>>>>> > >>>>>>>>>>>search-engine friendly URLs from completely dynamic > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>applications. This > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>gets touted by the Turbine community as a great feature > >>>>>> > >>>>>>(and it may > >>>>>> > >>>>>>>>>>>be). I'd love to have this available, but as you can see > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>below, it is > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>easy enough to implement that anyone can do it as soon > >>>>>> > >>>>>>as they want > >>>>>> > >>>>>>>>>>>it. I don't really need it at the moment, so I'll let > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>someone else do > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>it. > >>>>>>>>>>> > >>>>>>>>>>>-Robert > >>>>>>>>>>> > >>>>>>>>>>>// Also cache any pathinfo variables that are passed > >>>> > >>>>around as > >>>> > >>>>>>>>>>> // if they are query string data. > >>>>>>>>>>> try > >>>>>>>>>>> { > >>>>>>>>>>> StringTokenizer st = > >>>>>>>>>>> new > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>> > >>>>>>>>StringTokenizer(request.getPathInfo(), "/"); > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>>>> boolean isNameTok = true; > >>>>>>>>>>> String pathPart = null; > >>>>>>>>>>> while (st.hasMoreTokens()) > >>>>>>>>>>> { > >>>>>>>>>>> if (isNameTok) > >>>>>>>>>>> { > >>>>>>>>>>> tmp = > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>java.net.URLDecoder.decode(st.nextToken()); > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> isNameTok = false; > >>>>>>>>>>> } > >>>>>>>>>>> else > >>>>>>>>>>> { > >>>>>>>>>>> pathPart = > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>java.net.URLDecoder.decode(st.nextToken()); > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> if (tmp.length() > 0) > >>>>>>>>>>> { > >>>>>>>>>>> add(convert(tmp), pathPart); //R.D. > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>this add > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>the params to their internal param implementation, > >> > >>see below* > >> > >>>>>>>>>>> } > >>>>>>>>>>> isNameTok = true; > >>>>>>>>>>> } > >>>>>>>>>>> } > >>>>>>>>>>> } > >>>>>>>>>>> catch (Exception e) > >>>>>>>>>>> { > >>>>>>>>>>> // If anything goes wrong above, don't > >>>> > >>>>worry about it. > >>>> > >>>>>>>>>>> // Chances are that the path info was wrong > >>>>>> > >>>>>>anyways and > >>>>>> > >>>>>>>>>>> // things that depend on it being right will > >>>>>> > >>>>>>fail later > >>>>>> > >>>>>>>>>>> // and should be caught later. > >>>>>>>>>>> } > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>>* from super-class BaseValueParser > >>>>>>>>>>>/** > >>>>>>>>>>> * Random access storage for parameter data. The keys > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>must always be > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> * Strings. The values will be arrays of Strings. > >>>>>>>>>>> */ > >>>>>>>>>>> private Map parameters = new HashMap(); > >>>>>>>>>>> > >>>>>>>>>>>-----Original Message----- > >>>>>>>>>>>From: [EMAIL PROTECTED] > >>>>>>>>>>>[mailto:[EMAIL PROTECTED] > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>Behalf Of > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>>Jerome BERNARD > >>>>>>>>>>>Sent: Sunday, September 28, 2003 9:51 PM > >>>>>>>>>>>To: [EMAIL PROTECTED] > >>>>>>>>>>>Subject: Re: [OS-webwork] Advanced URL mapping? > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>>Could you give some insights about the way Turbine > >>>>>> > >>>>>>handle URLs? Any > >>>>>> > >>>>>>>>>>>pointers? > >>>>>>>>>>> > >>>>>>>>>>>Jérôme. > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>------------------------------------------------------- > >>>>>>This sf.net email is sponsored by:ThinkGeek > >>>>>>Welcome to geek heaven. > >>>>>>http://thinkgeek.com/sf > >>>>>>_______________________________________________ > >>>>>>Opensymphony-webwork mailing list > >>>>>>[EMAIL PROTECTED] > >>>>>>https://lists.sourceforge.net/lists/listinfo/opensymphon > y-webwork > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>------------------------------------------------------- > >>>>>This sf.net email is sponsored by:ThinkGeek > >>>>>Welcome to geek heaven. > >>>>>http://thinkgeek.com/sf > >>>>>_______________________________________________ > >>>>>Opensymphony-webwork mailing list > >>>>>[EMAIL PROTECTED] > >>>>>https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > >>>>> > >>>> > >>>> > >>>> > >>>> > >>>>------------------------------------------------------- > >>>>This sf.net email is sponsored by:ThinkGeek > >>>>Welcome to geek heaven. > >>>>http://thinkgeek.com/sf > >>>>_______________________________________________ > >>>>Opensymphony-webwork mailing list > >>>>[EMAIL PROTECTED] > >>>>https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > >>>> > >>>> > >>> > >>> > >>> > >>> > >>>------------------------------------------------------- > >>>This sf.net email is sponsored by:ThinkGeek > >>>Welcome to geek heaven. > >>>http://thinkgeek.com/sf > >>>_______________________________________________ > >>>Opensymphony-webwork mailing list > >>>[EMAIL PROTECTED] > >>>https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > >> > >> > >> > >>------------------------------------------------------- > >>This sf.net email is sponsored by:ThinkGeek > >>Welcome to geek heaven. > >>http://thinkgeek.com/sf > >>_______________________________________________ > >>Opensymphony-webwork mailing list > >>[EMAIL PROTECTED] > >>https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > >> > >> > > > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Opensymphony-webwork mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork >
------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork