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/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

Reply via email to