On 11/26/05, Laurie Harper <[EMAIL PROTECTED]> wrote:
>
> I suspect that Shale doesn't provide anything over-and-above the
> standard JSF navigation management in this area, in which case this may
> be more of a general JSF question:


Well, it does offer above-and-beyond navigation support inside a dialog, but
that doesn't really address your question.

I use wildcard action mapping paths extensively, which of course
> continues to work unchanged with struts-faces, but I'm wondering how I'd
> achieve the same goals with Shale.
>
> Here's what I have using Struts:
>
> - I have action mappings like
>
>      <action path="/Projects/*/Releases/*" ...
>        parameter="project={1};release={2}">
>
> - My actions parse the expanded 'parameter' value into a map:
>
>      {'project' -> 'foo', 'release' -> 'bar'}
>
>    which is used to determine the data to load for the view
>
> - My 'forward' declarations use the matches (e.g. {1}) to
>    specify the view to forward to,
>
>      <forward name="edit" path="/Projects/{1}/Releases/{2}/Edit/>
>
> - The result is that I can use a URL like
>
>      .../Projects/foo/Releases/bar
>
>    instead of
>
>      ...?project=foo&release=bar
>
>    and can declaratively specify the 'outcome' view w/out having
>    my actions mess with request parameters on the mapping forward
>    they return.
>
> By having the actions parse the parameter value, I'm able to avoid
> duplicating the URL path parsing semantics in two places; there's
> exactly one place I specify a path matching expression, and exactly one
> place where I specify how the results of that match are processed.
>
> Using Shale (or JSF in general), I'm not sure how to achieve the same
> thing. Ideally, I'd be able to do something like this:
>
>      <navigation-rule>
>          <from-view-id>/Projects/*/Releases/*</from-view-id>
>          <navigation-case>
>              <from-outcome>edit</from-outcome>
>
>
> <to-view-id>/Projects/ReleaseEdit.jsp?project={1}&amp;release={2}</to-view-id>
>              <redirect/>
>          </navigation-case>
>      </navigation-rule>
>
>
> or better yet, have the to-view-id refernce a logical path the way the
> Struts 'forward' does -- that's the bit where I thought maybe Shale
> might be able to help.


You can indeed use wildcards in from-view-id (or from-outcome) clauses in
the navigation rules ... but that doesn't deal with the parameter
substitution you are proposing.

I'm still not sure how I get a backing bean setup with data supplied as
> request parameters, but I think I should be able to figure that out
> easily enough. The bit I have no idea how to solve is the use of path-
> extra-info--based URLs...


JSF prefers that you forget such things as URLs and request parameters
actually exist :-).  What you are passing around is typically model data, so
the preferred solution is to use request or session scope attributes
(depending on whether you're doing a redirect), or properties of such a
request or session scope bean.

L.


Craig

Reply via email to