Could you give us a definition of SmartURL ?

Thanks
Martin--
----- Original Message -----
From: "Jeromy Evans" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <user@struts.apache.org>
Sent: Saturday, December 08, 2007 3:50 AM
Subject: Re: [struts] params and staticParams


> Dale Newfield wrote:
> >
> > Lets see if I can come up with an off-the-cuff example:
> >
> Ok, I see what you're doing now.
> >
> > Because I still can't find people that are friends with both joe and
amy:
> >
http://localhost:8080/social-networking-app-de-jur/users/friendsOf/joe/frien
dsOf/amy.html
> >
> > because one constraint will overwrite the next of the same type.
> >
> > And I don't think this is really what the rest plugin does, either.
> > (Am I wrong?)
> >
> Yeah, I'm certain no mapping supports params like the "friendOf' and
> "friendOf" example at the moment.  The NamedVariablePatternMatcher is
> based on fixed patterns:
> eg.
>
@Namespace("users/{relationshipA}/{usernameA}/{relationshipB}/{usernameB}")
> > In order to prevent a multitude of urls, I guess I could be careful
> > and alphabetize the constraints when constructing urls (alphabetizing
> > values when constraints are multiply present.  So I would need to
> > detect that this is incorrect:
> >
http://localhost:8080/social-networking-app-de-jur/users/friendsOf/joe/frien
dsOf/amy.html
> >
> > and redirect to:
> >
http://localhost:8080/social-networking-app-de-jur/users/friendsOf/amy/frien
dsOf/joe.html
> >
> > before returning a result.
> >
> > So now that I better understand how to most cleanly describe the urls
> > to request information from my system, how do I go about implementing
> > that mapping?  From what I understand of the various rest tools we've
> > got, this isn't the way any of them work.  Should I just send all
> > "/widgets/*" to a single action that does it's own URL parsing?
> >
> I think this is an argument for a custom action mapper that supports
> your expressions.  It's up to the mapper to parse the URL to extract the
> namespace, action and params. The mappers seem fairly straight-forward.
>
> Actually, I don't think any of the existing mappers can send
> "/widgets/*" to your action because I think they would confuse the paths
> training widgets with the namespace or action name (except perhaps when
> it fails it will fallback to an in the default namespace)..
>
> I'd start by looking at the parseNameAndNamespace method of
>
http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/rest/src/main/j
ava/org/apache/struts2/rest/RestActionMapper.java
> and
>
http://svn.apache.org/repos/asf/struts/struts2/trunk/core/src/main/java/org/
apache/struts2/dispatcher/mapper/DefaultActionMapper.java
>
> And create you're own.
> >> Since you asked, the REST plugin with the NamedVariablePatternMatcher
> >> enabled would allow you to move some params into the path to tidy it
> >> up a bit (and address each resource with a unique url):
> >
> > This might be what I'm looking for...  I can "read the source, luke"
> > at
> >
http://svn.opensymphony.com/fisheye/browse/~raw,r=1664/xwork/trunk/src/java/
com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java
> >
> > But I don't see *any* documentation for this.  Where exactly would I
> > specify those patterns described in the javadoc at the top of that
> > java?  I don't understand how NamedVariablePatternMatcher relates to
> > the REST plugin...
> >
> The NamedVariablePatternMatcher isn't documented at all yet as far as I
> know (except perhaps in Don's presentation - haven't checked) [1]
> The relationship to the REST plugin is that it was written to support
> namespace parameters for it [2].  It could probably be used with the
> normal action mapper or smarturls but I doubt anyone's tried that yet.
>
> It's enabled by overridding the PatternMatcher bean in struts.xml:
>
> <bean type="com.opensymphony.xwork2.util.PatternMatcher" name="struts"
> class="com.opensymphony.xwork2.util.NamedVariablePatternMatcher"/>
> (see struts-default.xml for comparison)
>
> The patterns mentioned in the javadoc are assumed to be specified using
> @Namespace within your action (rest/codebehind) but I suppose you could
> specify them with namespace attributes in struts.xml too (I'm guessing)
> as it all results in the same config.
>
> Hope some of this helps.  I haven't tried anything as complicated or
> flexible as you're doing with action params.
>
> [1] http://www.jroller.com/mrdon/entry/struts_2_and_rest_apachecon
> [2]
>
http://www.nabble.com/-S2.1--url-action-mapping-problem-(restful)-t4695060.h
tml
>
>
>
> ---------------------------------------------------------------------
> 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]

Reply via email to