cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "cyril vidal" <cyr.vi...@wanadoo.fr>
Subject xsp problem
Date Wed, 31 Jul 2002 13:34:09 GMT
hy,

In the last message, I've asked  a question about a small factorial program, dynamically written
with a recursive  XSLT named-template call and getting a parameter via HTTP request.

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:http="http://xml.apache.org/cocoon/requestgenerator/2.0">

<xsl:template match="/">

<page>

<valeur-parametre>

<xsl:value-of select="/http:request/http:requestParameters/

http:parameter/http:value"/>

</valeur-parametre>

<calcul-factoriel>

<xsl:call-template name="factorial">

<xsl:with-param name="input" select="/http:request/

http:requestParameters/http:parameter/http:value"/>

</xsl:call-template>

</calcul-factoriel>

</page>

</xsl:template>

<xsl:template name="factorial">

<xsl:param name="input"/>

<xsl:choose>

<xsl:when test="$input > 1">

<xsl:variable name="tmp">

<xsl:call-template name="factorial">

<xsl:with-param name="input" select="$input - 1" />

</xsl:call-template>

</xsl:variable>

<xsl:value-of select="$tmp * $input"/>

</xsl:when>

<xsl:otherwise>

1

</xsl:otherwise>

</xsl:choose>

</xsl:template>

</xsl:stylesheet>



 Now, for training, I just would like to do the same with XSP. So, instead of the recursive
call to the xsl template name, I'de like to use a Java method:

This one might be the following:

   public static int factorialize (int input)
{
   int result;
   if (input&gt;1) {
   result=factorialize(input-1);
   }
   
   else{
    result=1;
  }
    return input*result;
}


Problem, I'm new to XSP and I don't know exactly how to do. I know I have to embeed this code
in a <xsp:logic> element, and get the result with a <xsp:expr> but I ignore the
correct syntax.

Can you give me some advice?
Thanks,

Cyril Vidal
Email: cyril@planetexml.com
Web: http://www.planetexml.com

Mime
View raw message