Having it as a core feature is fine, and would enable to benefit of it
without any configuration... even better !

Any idea when you'll have this into the trunk ? I have a feakin' whole
app to migrate :-)

Cheers

Remi

On 5/29/07, Ben Gunter <[EMAIL PROTECTED]> wrote:
>
>  Since this is going to be so tightly integrated into Stripes (changes to
> s:url, s:link, interpretation of @UrlBinding, etc.) should I bother to
> implement this as an Interceptor or should I just modify the existing
> ActionResolver and whatever else? It likely will be more efficient to modify
> the core classes.
>
>  -Ben
>
>  Tim Fennell wrote:
>  My take on this is that Stripes should prefer friendly URLs if they
> are configured. To generalize this a bit, let's assume we continue
> to use @UrlBinding, and I'll give some examples of how I think this
> should work:
>
> #1 UrlBinding("/foo/{$event}/${date}")
>  #1a desc: vanilla clean URL
>  params: event->view, date->2007-05-26
>  url: /foo/view/2007-05-26
>
>  #1b desc: clean url with additional param
>  params: event->view, date->2007-05-26, keyword=mac
>  url: /foo/view/2007-05-26?keyword=mac
>
>  #1c desc: first param not provided
>  params: date->2007-05-26, keyword=mac
>  url: /foo?date=2007-05-26&keyword=mac
>
> So, to generalize, I'd expect a strategy something like the following
> to construct a URL from a UrlBinding:
> 1: take everything to the left of the first parameter
> 2: from right to left, for params in the /path/, if the next
> parameter has a value supplied, insert into the path, else goto #3
> 3: write remaining parameters as a regular query string
>
> Does this sound reasonable to everyone? Or am I missing a case?
>
> -t
>
> On May 28, 2007, at 8:28 AM, Kai Grabfelder wrote:
>
>
>
>  Hm,
>
> I don't see why I want to change the URLBinding if I add a new
> property to my action bean. Property Binding in the normal way
> (QueryString parameter) should always be possible as well.
>
> Whenever an application goes to production URLBindings should not be
> changed anyway because for the sake of SEO and user friendly URLs
> should hardly never ever change.
>
> Of course you are right, that clean urls are not that necessary for
> intranets but as long as they mean not any extra work they still
> could be used imo...
>
> cheers
>
> Kai
>
>
> --- Original Nachricht ---
> Absender: VANKEISBELCK Remi
> Datum: 28.05.2007 13:53
>
>
>  Well, it has side effects actually...
>
> For example, when you add a property to your action and want it
> bound,
> you have to get back to your @UrlBinding and change what's in
> there...
> Also, depending on the usage of your action bean, you may have
> different parameter expectations that would not be usable with clean
> URLs, as the parameters are "frozen" in the @UrlBinding.
>
> IMO, clean URLs are a requirement that everybody doesn't have. I
> never
> use them when building intranets for example, as the app is not
> supposed to be crawled by search engines, and anyway the URLs are too
> complex to be "clean" (dynamic parameters and the like).
> So for folks like you who need this on all their GETs, maybe a config
> param for <s:link/url> would be ok ? So that when you ask for a link
> or url in your page, then the clean url is used. Otherwise, in
> case of
> POSTs and when you specifically tell Stripes that the url doesn't
> have
> to be clean, the ugly one is used.
>
> What do you think ?
>
> Cheers
>
> Remi
>
> On 5/26/07, Newman, John W <[EMAIL PROTECTED]> wrote:
>
>
>  I personally think clean should be the default, or even the only
> way to do it. I will certainly use this 100% of the time, I
> can't see any reason to use an ugly url if the facility to build
> a clean one is that easy to use.
>
> John
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] on
> behalf
> of Ben Gunter
> Sent: Sat 5/26/2007 10:35 AM
> To: [EMAIL PROTECTED]; Stripes Development List
> Subject: Re: [Stripes-dev] clean URLs
>
> I want to say it should require a separate annotation, but I
> can't come
> up with a good reason why. I guess that means we should just use
> @UrlBinding.
>
> -Ben
>
> VANKEISBELCK Remi wrote:
>
>
>  Hi Kai (and other UrlBinding fans ;-P),
>
> Well, it's true that my own version works like you describe, and
> it's fine...
>
> Hmmm, frankly speaking I don't really know. You folks seem to be
> right
> : why another annotation when one is enough ? Clarity ? Well,
> finally
> you'd also notice the "clean" thingy at first glance, based on
> what's
> inside @UrlBinding...
>
> Ben ? What's your take on this ?
>
> Cheers
>
> Remi
>
> On 5/25/07, Kai Grabfelder <[EMAIL PROTECTED]> wrote:
>
>
>
>  Remi,
>
> I'm still wondering why anybody wants to specify multiple url
> annotations at one bean? I tend to agree with Barry that just ony
> URLBinding (may it be "clean" or not) annotation is enough. Other
> frameworks (for example symfony) do it this way as well.
>
> A "clean" url may not be necessary for POST requests / forms but
> it's not bad either, isn't it?
>
> cheers
>
> Kai
>
>
> --- Original Nachricht ---
> Absender: VANKEISBELCK Remi
> Datum: 25.05.2007 16:30
>
>
>
>  Hey Barry,
>
> Well, it's only an additional feature : the existing
> @UrlBinding +
> everything related is already fine and we don't want to change
> that.
> The "beanclass" stuff would just use either @UrlBinding or
> @CleanUrl,
> depending on what you ask,, e.g. :
> <s:form beanclass="..."> -> uses regular UrlBinding as FORMs
> usually
> don't need to be "clean"
> <s:link beanclass="..."> -> uses CleanUrl as links are
> supposed to be
> clean if the bean class has the @CleanUrl annotation, unless you
> specify e.g. clean="false".
>
> IMHO, adding this to the existing @UrlBinding, it would make the
> annotation more complex, without being really more convenient :
>
> @UrlBinding(value="/my/stuff.action",
> clean="/my/stuff/{p1}/...")
> or
> @UrlBinding("/my/stuff.action")
> @CleanUrl("/my/stuff/{p1}/...")
>
> The second option looks more readable and expressive to me...
> And once
> again @CleanUrl is a feature you want to add to your action
> bean, so
> having it as a separate annotation is OK as far as I see.
> Annotate to
> add features, that sticks to the Stripes spirit if I'm right :-)
>
> Cheers
>
> Remi
>
> On 5/25/07, Barry Davies <[EMAIL PROTECTED]> wrote:
>
>
>
>  All these ideas are making me very much look forward to using
> this
> feature--the ideas seem very promising. My knee-jerk
> responses would be to
> want classic-urls and clean-urls to both be configured using
> @UrlBinding.
> Can you have multiple @UrlBinding annotations for a single
> ActionBean right
> now? I thought you couldn't so that a beanclass uniquely
> implies a URL in
> all cases. If we're going to change the thinking behind
> that, we might as
> well go whole-hog and allow any number of classic-url or
> clean-url bindings,
> with one being the default and the others being able to be
> selected by name,
> or some such. What do you guys think?
>
> -BD aka RJ
>
>
> ----- Original Message ----
> From: VANKEISBELCK Remi <[EMAIL PROTECTED]>
> To: Tim Fennell <[EMAIL PROTECTED]>
> Cc: Stripes Development List
> <[email protected]>
> Sent: Friday, May 25, 2007 8:53:35 AM
> Subject: Re: [Stripes-dev] clean URLs
>
> As far as I see it, an additional annotation is OK. It's a
> specific
> feature that you add to your action bean, so it's worth it IMO.
>
> On the other hand, I second Tim's point on s:link/url.
> Another tag
> isn't necessary (and could be confusing), and I think we can
> rework
> the existign tags so that they handle this.
> You would then write your links and urls the same way, and
> configure
> which method you prefer as an attribute or as a global
> configuration
> setting.
>
> <s:link beanclass=".." clean="true"> // throws exception if
> bean
> doesn't have @CleanUrl
>  my stuff
>  <s:link param .../>
> </s:link>
>
> What do you think ?
>
> Cheers
>
> Remi
>
> On 5/25/07, Tim Fennell <[EMAIL PROTECTED]> wrote:
>
>
>
>  Hey Guys,
>
> Ben: I very much like your approach. The only thing I'll
> say is that
> having different annotations and link tags makes sense for
> an add-on,
> but when we integrate this to the core - I'd love to see
> this "just
> work" with s:link and s:url. The annotation - maybe it does
> make
> sense to keep that separate? I'm probably not the best
> judge of how
> people will want to use this stuff ;)
>
> -t
>
> On May 25, 2007, at 9:46 AM, Ben Gunter wrote:
>
>
>
>
>  Great! I'm glad you like it. Yes, you definitely can still use
> "normal"
> URLs and params and all that. You don't even have to match the
> @UrlBinding to the @CleanUrl if you don't want to.
>
> VANKEISBELCK Remi wrote:
>
>
>
>
> Hey Ben,
>
> Cool !
> I've just reopened my own version, and yours seems
> definitly better :
> * you don't need another request wrapper (how could I miss
> the
> ForwardResolution trick ? neat !)
> * you don't need any action separator (use the whole
> prefix before
> param declaration)
> * you have the link tag that already works (I'm still
> doing ugly
> stuff
> like <a href="/my/stuff/${blah}/foo/${bar.id}">... !!)
>
> I'm voting for integration of your version :-)
>
> A major question though : is the "regular" way still
> working ? I
> mean,
> can you use the same action with @CleanUrl and @UrlBinding
> +ugly
> params
> ?
> I like the fact that with the clean URLs I have, I can
> still use the
> same beans with "ugly" urls...
>
> See ya
>
> Rémi
>
> On 5/25/07, Ben Gunter <[EMAIL PROTECTED]> wrote:
>
>
>
>
>  Remi, I know you have done some work on clean URLs. This
> is how I've
> implemented it. We can take what we like from our two
> implementations
> and incorporate it into Stripes.
>
> The ActionBean looks like this:
>
> @CleanUrl("/my/action/{state}/{city}")
> public class MyActionBean extends BaseActionBean {
>  @Validate(required=true) private String state;
>  @Validate(required=true) private String city;
>
>  // ... other stuff
> }
>
>
> To create clean links to an ActionBean annotated with
> @CleanUrl, you
> would do this:
>
> <%@ taglib="sx"
>
>
>
>  uri="http://stripes.sourceforge.net/stripes-
>
>
>
>
>
>
>  extras.tld" %>
> <sx:clean-link
>
>
>
>  beanclass="com.mycompany.stripes.action.MyActionBean">
>
>
>
>
>
>
>  Atlanta, Georgia
>  <s:param name="state">GA</s:param>
>  <s:param name="city">Atlanta</s:param>
> </sx:clean-link>
>
> This would generate a link to /my/action/GA/Atlanta. That's
> pretty much
> all there is to using it.
>
> The clean links are handled by a Stripes Interceptor. At
> startup, it
> scans all ActionBeans for @CleanUrls and caches the mapping
> prefix (i.e.
> the longest literal string before the first parameter
> specification).
> For each request it checks to see if the URI has been
> mapped using
> @CleanUrl. If it does find one that matches, then it
> executes a
> ForwardResolution to the ActionBean's URL binding and
> adds the
> parameters to the forwarded request. After that it just
> proceeds
> like a
> normal request with binding, validation, and all the
> other good
> stuff.
>
> I'm still working out a couple of little kinks, but it is
> working
> well.
> I'm caching everything I can to optimize the performance.
>
> -Ben
>
>
>
>
> ----------------------------------------------------------------
> ----
>
>
>
>
>
>
>  -----
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express
> and take
> control of your XML. No limits. Just data. Click to get
> it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
>
>
>
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
> ----------------------------------------------------------------
> -----
>
>
>
>
>
>  ----
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express
> and take
> control of your XML. No limits. Just data. Click to get it
> now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
>
>
>
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
> ----------------------------------------------------------------
> ------
>
>
>
>
>  ---
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express
> and take
> control of your XML. No limits. Just data. Click to get it
> now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
>
>
>
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
> ----------------------------------------------------------------
> ---------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and
> take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>  ________________________________
> Need Mail bonding?
> Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers
> users.
>
>
>
> -----------------------------------------------------------------
> --------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>
>
> ------------------------------------------------------------------
> -------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>
>
> -------------------------------------------------------------------
> ------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>
> --------------------------------------------------------------------
> -----
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>
>
>
> ---------------------------------------------------------------------
> ----
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
>
> ----------------------------------------------------------------------
> ---
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Stripes-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-development
>
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to