cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Munat <b...@munat.com>
Subject Re: request-param [was: basic form tutorial]
Date Sun, 17 Aug 2003 05:46:31 GMT
ACK! FORGOT THE FRICKIN' "E" IN "PARAMETER"! That's classic. I actually 
checked every single place that I had typed "artist", "style" and 
"title" about ten times, but of course I mistyped parameter! Can't 
believe I missed that. How embarrassing.

Thanks very much.

b


Geoff Howard wrote:
> Ben, everything looks fine.  You absolutely do not need RequestGenerator 
> in this case.  Is your pipeline snippet cut and paste?  See below...
> 
> Ben Munat wrote:
> 
>> Still trying to get my simple post variables exercise to work. Came 
>> across the Request Generator page in the docs. Do I need to put a 
>> <map:generate type="request"/> in the pipeline for this page to get it 
>> to find the post vars? There's gotta be some config thing missing.
>>
>> Here's the form html for the first input:
>>
>> <form method="post" action="songs" class="searchbox">
>>     <input size="25" name="artist" type="text">
>> </form>
>>
>> Here's the pipeline for the page:
>>
>> <map:pipeline>
>>     <map:match pattern="songs">
>>         <map:generate type="file" src="content/songlist.xml"/>
>>         <map:transform type="xslt" src="style/songlist.xsl">
>>             <map:paramter name="artist"
> 
> 
> Typo: must be  map:parameter not map:paramter.  If that's it, make sure 
> you change all three.
> 
>>                 value="{request-param:artist}"/>
>>             <map:paramter name="title"
>>                 value="{request-param:title}"/>
>>             <map:paramter name="style"
>>                 value="{request-param:style}"/>
>>         </map:transform>
>>         <map:serialize type="html"/>
>>     </map:match>
>> </map:pipeline>
>>
>> Here's the xconf line:
>>
>> <component-instance 
>> class="org.apache.cocoon.components.modules.input.RequestParameterModule"
>>     logger="core.modules.input" name="request-param"/>
>>
>> At the beginning of songlist.xsl, I have this:
>>
>> <xsl:param name="artist"/> etc.
>>
>> Then, in the root template I have a basic html framework and within 
>> the body tags I have:
>>
>> <p>Artist: <xsl:value-of select="$artist"/></p>
>>
>> This all seems very straightforward and simple. But when I type 
>> something in the artist form input box and hit submit, the page 
>> reloads and there's still nothing after "Artist:".
>>
>> What am I missing?
>>
>> Ben
>>
>>
>> ------------------------------------------------
>> Ben Munat wrote:
>>
>>> Thanks guys. This sounds really easy. Unfortunately, I haven't been 
>>> able to get it to work yet.
>>>
>>> I checked my cocoon.xconf file and the RequestParameterModule is just 
>>> as the wiki page says it should be. I edited the map:transform 
>>> element of the page's pipeline to include the parameters 
>>> (<map:parameter name="artist" value="{request-param:artist}"/>). And 
>>> I declared the parameters as top-level params and then tried to get 
>>> their values (with <xsl:value-of select="$title"/> etc.). But when I 
>>> put something into a form field and submit it, I get nuttin... the 
>>> page reloads, but the variables are still empty.
>>>
>>> Might there be another configuration thing I'm missing? Or maybe I'm 
>>> just not doing something really obvious... that's my specialty. Well, 
>>> at least all the variable names are all lower case, and I checked 
>>> thoroughly for typos! ;o)
>>>
>>> Other ideas appreciated.
>>>
>>> Ben
>>>
>>> Geoff Howard wrote:
>>>
>>>> Conal Tuohy wrote:
>>>>
>>>>> Ben, you can pass the form values to your XSLT something like this:
>>>>>
>>>>> <map:transform src="song-list-to-html.xsl">
>>>>>     <map:parameter         name="artist"         
>>>>> value="{request-param:artist}"/>
>>>>>     <map:parameter         name="title"         
>>>>> value="{request-param:title}"/>
>>>>>     <map:parameter         name="style"         
>>>>> value="{request-param:style}"/>
>>>>> </map:transform>
>>>>>
>>>>> Check out the RequestParameterModule:
>>>>> http://wiki.cocoondev.org/Wiki.jsp?page=RequestParameterModule
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> And to use them in your stylesheet you need to define those three 
>>>> values as top-level xsl:param elements:
>>>>
>>>> <xsl:stylesheet version="1.0" 
>>>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>>>>
>>>>     <xsl:param name="artist"/>
>>>>     <xsl:param name="title"/>
>>>>     <xsl:param name="style"/>
>>>>
>>>> ....
>>>>
>>>> This is the same way you'd access external params sent to a 
>>>> transformation in standard xslt from the command line.
>>>>
>>>> For this simple case, don't get bogged down in the frameworks you 
>>>> mentioned.  When you start getting into more complex needs, they'll 
>>>> be appropriate but they're not _necessary_ and will cloud the 
>>>> simplicity of Cocoon while you're just getting started.
>>>>
>>>> Geoff
>>>>
>>>>>> Hello. I'm very new to Cocoon and certainly no xml/programming/web

>>>>>> wizard. I have an html page created by an xlst and served by 
>>>>>> cocoon. The source xml file is a list of songs; the xslt converts

>>>>>> the songlist into a table and puts it on a page below a basic 
>>>>>> header/navbar and a box with some form inputs ("artist" and 
>>>>>> "title" text boxes and a "style" dropdown) for searching. Now the

>>>>>> trick is to get cocoon to reload the page -- after I've entered 
>>>>>> something in these widgets and clicked submit -- and only display

>>>>>> the entries from the songlist that match this criteria.
>>>>>>
>>>>>> I've poked around the wiki and the docs and searched the mailing

>>>>>> list and, well, I'm more confused than ever. Often the material is

>>>>>> over my head, and oriented-towards doing something fancier than I

>>>>>> need; form validation, database interaction and the like.
>>>>>>
>>>>>> All I want to do is get the values of three post variables and 
>>>>>> fill the table of song data accordingly. Do I turn my xml file 
>>>>>> into an xsp and put java code in to interpret the post vars? Do I

>>>>>> use some other component for this (an action... or this woody 
>>>>>> thing I keep hearing about)? Is there a tutorial out there that 
>>>>>> I've missed that has very basic instructions on using form vars?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>>
>>>>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message