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