Andrey Volkov schrieb:
O, thank you, I see. I did some progress, but I have one more question. How should parameters be passed to csv generator?
I describe the whole picture below.

I defined a new component-instance. It ties the usecase with the pipeline.
<component-instance logger="lenya.admin" name="admin.logs.export" class="ksa.usecases.Logs">
            <view uri="cocoon://modules/administration/auditlogs.csv"/>
        </component-instance>

The pipeline in sitemap.xmap:
           <map:pipeline pattern="auditlogs.csv">
          <map:generate type="auditlogs" src="auditlogs"/>
          <map:serialize type="text"/>
      </map:pipeline>

So, it calls 'auditlogs' generator that is defined in root's sitemap.xmap:
<map:generator name="auditlogs" label="content,data" logger="sitemap.generator.auditlogs" pool-grow="2" pool-max="16" pool-min="2" src="ksa.generators.AuditLogsGenerator"/>

So, the question is how to pass parameters from web page to the generator? Could someone give a piece of advice?

The easiest way is to access the request parameters directly in the generator:

  Request request = ObjectModelHelper.getRequest(objectModel);
  String foo = request.getParameter("foo");

If you want to decouple the generator from the HTTP processing (SoC), you can pass the parameters from the sitemap:

  <map:generate type="auditlogs" src="auditlogs">
    <map:parameter name="foo" value="{request-param:foo}"/>
  </map:generate>

  String fooValue = parameters.getParameter("foo");


BTW, this is rather a Cocoon-related subject than a Lenya-related one.

HTH,

-- Andreas



Maybe there can be another way. I would be glad to hear about it.

On Tue, Sep 15, 2009 at 4:03 PM, Andreas Hartmann <andr...@apache.org <mailto:andr...@apache.org>> wrote:

    Andrey Volkov schrieb:

        Could you describe in more details where I should define
        serializer and how to redirect output from a usecase to it?


    
http://lenya.apache.org/docu20/reference/usecase-framework/usecase-framework-overview.html#N101BC

    "If you don't want to display a form, but output arbitrary XML,
    text, an SVG-generated image or something like that, you can use a
    uri attribute instead of the template attribute."

    In your case that would be a cocoon:// URI which calls a pipeline in
    your module that ends with the text serializer.

    HTH,

    -- Andreas



--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@lenya.apache.org
For additional commands, e-mail: user-h...@lenya.apache.org

Reply via email to