Phil,
I would change your XSP to this:
<xsp:page
language="java"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:xsp-response="http://apache.org/xsp/response/2.0">
<xsp:logic>
String person = null;
</xsp:logic>
<html>
<title>The favorite colour page - Yay"</title>
<xsp:logic>
person = <xsp-request:get-parameter name="person"/>;
</xsp:logic>
<xsp:expr>person</xsp:expr> has a favorite colour! It is
<person-colour><xsp:expr>person</xsp:expr></person-colour>
</html>
</xsp:page>
And then in your stylesheet do this:
<xsl:template match="person-colour">
<!-- Select the person, somehow -->
<xsl:variable name="selectedPerson"
select="document('people.xml',.)/people/person[name='current()']"/>
<!-- return their favorite colour, somehow -->
<xsl:value-of select="$selectedPerson/favoriteColour">
</xsl:template>
This is untested (of course ;-)
Hth,
Christian
On Thu, Oct 25, 2001 at 09:57:26AM +1000, Phil Blake wrote:
> I am missing something when it comes to getting and passing request
> arguments. I've looked at the cocoon examples, and although my test
> example appears to match the cocoon one in every way there is obviously
> something fundamental missing.
>
> I think I'm pretty close. :) If anyone could help me get past this
> misunderstanding it would be much appreciated.
>
> My example scenario allows the user to enter a URL like the following:
> http://hostname/example/colour.html?person=Phil%20Blake
> The result would be a HTML page with the person's favorite colour.
>
> In the sitemap I added a generic matcher that matches anything .html and
> returns the corresponding xsp. I figured (as opposed to read anywhere in
> documentation) that I needed to include the use-request-parameters and
> use-browser-capabilities-db parameters - I don't know why I want them,
> just that they appeared in the cocoon sitemap.
> <!-- Match *.html and map to *.xsp -->
> <map:match pattern="**.html">
> <map:generate type="serverpages" src="{1}.xsp"/>
> <map:transform src="Example.xsl">
> <map:parameter
> name="use-request-parameters" value="true"/>
> <map:parameter
> name="use-browser-capabilities-db" value="true"/>
> </map:transform>
> <map:serialize/>
> </map:match>
>
> The requested xsp page looks like this. (colour.xsp)
> <xsp:page
> language="java"
> xmlns:xsp="http://apache.org/xsp"
> xmlns:xsp-request="http://apache.org/xsp/request/2.0"
> xmlns:xsp-response="http://apache.org/xsp/response/2.0">
> <xsp:logic>
> String person = null;
> </xsp:logic>
> <html>
> <title>The favorite colour page - Yay"</title>
> <xsp:logic>
> person = <xsp-request:get-parameter name="person"/>;
> </xsp:logic>
> <xsp:expr>person</xsp:expr> has a favorite colour! It is
> <person-colour/>
> </html>
> </xsp:page>
>
> I then have a half/broken stylesheet that is supposed to select the
> person named in the URL person path arg. Then return their favorite
> colour. However, as you'll notice, I can't see how to get from the first
> line, to the second one. I assume the variable selectedPerson contains a
> person node. (I don't know 'cause I can't make it work).
> However, I have no idea how to use that variable to retrieve the colour.
> XSL Stylesheet:
> <xsl:template match="person-colour">
> <!-- Select the person, somehow -->
> <xsl:variable name="selectedPerson"
> select="document('people.xml',.)/people/person[name='$person']"/>
> <!-- return their favorite colour, somehow -->
> <xsl:value-of select="$selectedPerson/favoriteColour">
> </xsl:template>
>
>
>
> XML External Content (people.xml)
> <people>
> <person>
> <name>Phil</name>
> <favoriteColour>blue</favoriteColour>
> </person>
> <person>
> <name>Arthur</name>
> <favoriteColour>yellow</favoriteColour>
> </person>
> </people>
>
>
> Thanks for your help. Have fun,
>
> Phil
>
>
> ---------------------------------------------------------------------
> 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]>
---------------------------------------------------------------------
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]>