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]