Carsten,

That is what I'm expecting, but for some reason. The redirect is not a the url does become the new url.

There are no errors on the console, what is going wrong occurs in somewhere in the pipeline. Here's a more concrete example.

For example.

If I make a request to http://myserver/blah I would expect to be redirected to the http://myserver/someotherUrl and the request object in the action to show the correct URL. This it does.

where there is a matcher

<map:match pattern="**/someotherUrl">
  <map:act type="SimpleAction">
    <map:parameter name="ua" value="{useragent}"/>
    <map:parameter name="two" value="cocoon://{1}/tools/somecheck.jsp" />
  </map:act>
</map:match>

Once the matches and the request gets to the jsp the request.getRequestURI reads myserver/someotherUrl and not myserver/tools/somecheck.jsp as I would be expecting.

As I wrote earlier, if a real http:// url is used, the url appears correctly in the request to the jsp.

Btw, The cocoon version being used is 2.1.9.

Alec.

Carsten Ziegeler wrote:
Hi,

this should work - the redirector has a built-in handling for cocoon: urls.

Are there any errors when you try it or what is going wrong?

Carsten

Alec Bickerton wrote:
Hi,

I have simple action that takes 3 parameter and does a simple redirect based on the value of param1.

e.g.,

<map:match pattern="blah">
   <map:act type="SimpleAction">
    <map:parameter name="ua" value="{useragent}"/>
    <map:parameter name="one" value="http://somehost/someurl"/>
    <map:parameter name="two" value="http://somehost/someotherURL"/>
   </map:act>
</map:match>

Works perfectly, however the application I'm working on requires the use of cocoon:// as parameters. The following fails as the cocoon://url cannot be properly resolved by the action.

<map:match pattern="blah">
   <map:act type="SimpleAction">
    <map:parameter name="ua" value="{useragent}"/>
    <map:parameter name="one" value="cocoon://someurl"/>
    <map:parameter name="two" value="cocoon://someotherURL"/>
   </map:act>
</map:match>


SimpleAction.java (Simplified for clarity)

public class SimpleAction extends AbstractAction {

public final Map act( final Redirector redirector, final SourceResolver resolver, final Map objectModel, final String source,final Parameters params) throws Exception {
String ua = "example";
String oneURL = "www.example.example/pass/";
String twoURL = "www.example.example/fail/";
  if( params.isParameter( "ua" ) )
       ua = params.getParameter( ua );
  if( params.isParameter( "one" ) )
       oneURL = params.getParameter( "one" );
  if( params.isParameter( "two" ) )
       twoURL = params.getParameter( "two" );
  if( ua.equals("something"))
    redirector.redirect( false, oneURL );
  else
    redirector.redirect( false, twoURL );
  return null;
}


Any ideas. Is there a mechanism that I can retrieve the absolute URL from the cocoon:// protocol from within an action. Or am I missing some magic incantation on the redirector, that would let me use this type of URL.

Any help would be most appreciated.
Alec





---------------------------------------------------------------------
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