>Date: Tue, 11 Dec 2001 17:07:54 -0800
>To: [EMAIL PROTECTED]
>From: Marie Brandt <[EMAIL PROTECTED]>
>Subject: passing sitemap parameters inside of a pipeline
>
>I am attempting to use an XSP page generator to setup a sitemap parameter 
>which will then be used in the xslt tranformer statement to
>determine which stylesheet to apply.  However, even though I have debugged 
>the placement of the parameter into the result Map, I never
>see the value take affect in the transformer.    Consequently, to help 
>debug, I have tried to just pass it to my standard stylesheet and
>then print it, so I can see the value is set.  The sitemap parameter 
>nextXslt is apparently not setup and I can't figure out why??
>
>Do you see anything wrong with my technique?
>
>(Note, I pass the generator a parameter, just to expose the parameter name 
>to the sitemap developer.)
>
>    <map:match pattern="xtragate/dataService">
>         <map:act set="xtragate_xspconfig">
>           <map:generate type="serverpages" 
> src="docs/xsp/xgconfig/DataServiceXmlAbleAction.xsp">
>                         <map:parameter name="inputParm" value="nextXslt"/>
>         </map:generate>
>         <map:transform src="stylesheets/xgconfig/html/ds.xsl">
>                           <map:parameter name="inputParm" 
> value="{nextXslt}"/>
>           </map:transform>
>           <map:serialize type="html"/>
>                 </map:act>
>     </map:match>
>
>In the XSP page, I simulate an action class and then setup a sitemap 
>parameter by putting the parameter in the result MAP object,
>where parmName contains the string "nextXslt" ... Then, as you can see 
>below, I call the method act_DataAction which is simulating
>the action class.  Is there something else I need to do to expose the 
>resulting Map object to the sitemap?
>
>
>...
>     public Map act_DataAction(Redirector redirector, SourceResolver 
> resolver, Map objectModel, String src, Parameters par) throws Exception {
>
>         Map result = new HashMap();
>
>                 String parmName = "";
>
>                 // See if any parameters are passed in - we are looking 
> for the next xslt page name
>                 // The only reason to pass in the parameter name like 
> this, is just to expose it to the sitemap, so the
>                 // developer can have control of the parameter name from 
> there. The XSP page could just set the parameter
>                 // in the sitemap without going through this step.  It 
> adds some flexibility and some exposure of parameter names.
>
>                 String [] parArray = par.getNames();
>          System.err.println("\nDebugMsg:act_DataAbleAction.act:The 
> parArray.length "+parArray.length+"\n");
>                 int count = parArray.length;
>
>                 if (count > 0) {
>                         // Assume the first parameter is the xslt page 
> control parameter.
>                         String parm1 = parArray[count-1];
>                         parmName = par.getParameter(parm1);
>                 System.err.println("\nDebugMsg:act_DataAction.act:The 
> parArray value "+parArray[count-1]+"\n");
>                 }
>
>                    // Left out stuff to setup dsObject .
>                 result.put(parmName,dsObject.getType());
>         return result;
>     }
>...
><page>
>         <xsp:logic>
>                 Node xmlOut = null;
>                 try{
> 
>act_DataAction(null,this.resolver,this.objectModel,this.source,this.parameters);
>                         xmlOut = getDomNode();
>                 }catch(Exception e){
>                         e.printStackTrace();
>                 }
>         </xsp:logic>
>
>                 <xsp:expr>xmlOut
>                 </xsp:expr>
>
>   </page>
>
>Thanks for any help or insights!!
>
>
>



---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to