cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexandru COSTIN <acos...@interakt.ro>
Subject Re: XSP code reuse between files
Date Mon, 03 Sep 2001 08:16:42 GMT
	Thank your for your suggestion.
	I wonder though how can this mecanism be used when trying to reuse the
XSP code between multiple files...
	I would like to avoid redefining the reusedPart method for everypage,
as it's definition will remain unchanged
				Alexandru

> The capture taglib won't solve this problem, because the captured 
> content can't be parameterized.
> 
> To achieve this, you can put the reused part in a method defined in a 
> <xsp:logic> block child of <xsp:page>. Below is an example, based on 
> simple.xsp form the samples.
> 
> <xsp:page
>            language="java"
>            xmlns:xsp="http://apache.org/xsp"
>            xmlns:xsp-request="http://apache.org/xsp/request/2.0"
>            xmlns:log="http://apache.org/xsp/log/2.0"
>            xmlns:capture="http://apache.org/cocoon/capture/1.0"
>  >
> 
> <xsp:logic>
> private void reusedPart(String param) throws SAXException {
>     AttributesImpl xspAttr = new AttributesImpl();
>     <para>Hi there <xsp:expr>param</xsp:expr> ! I'm a simple dynamic

> page generated by XSP (eXtensible Server Pages).</para>
> 
>     <para>I was requested as the URI: <b><xsp-request:get-uri 
> as="xml"/></b></para>
> 
> }
> </xsp:logic>
>    <page>
>    <log:logger name="xsp-sample" filename="xsp-sample.log"/>
>    <log:debug>Processing the beginning of the page</log:debug>
> 
>     <title>A Simple XSP Page</title>
> 
>     <content>
> 
>     <capture:fragment-variable name="page_part">
>       <para>These 2 paragraphs were generated at the start of the XSP, 
> and captured for insertion at the end.</para>
> 
>       <para>Brought to you by Cocoon2 at <xsp:expr>new 
> Date()</xsp:expr>.</para>
>     </capture:fragment-variable>
> 
>     <xsp:logic>reusedPart("first time");</xsp:logic>
> 
>     <xsp:logic>reusedPart("second time");</xsp:logic>
> 
>     <para>The following list was dynamically generated:</para>
> 
> ...
> 
> Hope this helps.
> 
> Mario Muja wrote:
> > Hi Alexandru,
> > reusing part of an XSP result is something I plan to achieve with the 
> > new logicsheet CAPTURE.XSL. You will find it under
> > 
> > src\org\apache\cocoon\component\language\markup\xsp\java
> > 
> > in the source tree of the 2.0 and 2.1 branch. This logicsheet contains 
> > markup to copy part of an XSP to an XMLFragment variable, which can be 
> > later output using
> > 
> > <xsp:expr>here put the name of the fragment variable</xsp:expr>.
> > 
> > I never used this logicsheet but I think that it can do what you have 
> > described. Please let us know about your experiences with this new 
> > logicsheet.
> > 
> > Hope this helps.
> > Mario
> > 
> > 
> > Alexandru COSTIN wrote:
> > 
> >>        Hello,
> >>        I have created succesfully some dynamic pages using cocoon, but
> >> I have one question about code reusability.
> >>        The main problem is that in the XSP file, I have XML trees that
> >> are very similar, except for a parameter.
> >>
> >>        I will paste a code snippet below
> >>
> >> <calevel>
> >>        <esql:execute-query>
> >>                <esql:query>
> >>                        select * from v_inf where idtype_inf=6
> >>                </esql:query>
> >>                <esql:results>
> >>                <esql:row-results>
> >>                        <row>
> >>                 
> >> <id_inf><esql:get-string                                      
> >>                     column="id_inf"/></id_inf>
> >>                 <name_itm><esql:get-string
> >>                      column="name_itm"/></name_itm>
> >>                        </row>
> >>                 </esql:row-results>
> >>                 </esql:results>
> >>        </esql:execute-query>
> >> </calevel>
> >>
> >>        This part has to be repeated (with the same columns and
> >> structure) with
> >> idtype_inf=7,8, etc.
> >>        How can I do this without rewritting this code snippet x-times?
> >> A standard include mecanism has to be possible in Cocoon, or this can be
> >> done otherwise.
> >>        I think I have a solution, but I don't know if it's the best
> >> one. This part can be embedded in a XSP:logic loop that uses an array
> >> with the 6,7,8 values and pass the values to the embedded part.
> >>                               Alexandru
> >>
> >>
> > 
-- 
-----------------------
Alexandru COSTIN 
Product Manager
http://www.interakt.ro/ 
+401 777 1998 


---------------------------------------------------------------------
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: <cocoon-users-unsubscribe@xml.apache.org>
For additional commands, e-mail: <cocoon-users-help@xml.apache.org>


Mime
View raw message