cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Rosenstrauch <dar...@dti.net>
Subject RE: How do I add objects to the objectModel Map
Date Thu, 20 Dec 2001 16:44:25 GMT
I've never used the velocity generator before so I may be off-base.  But IIUC ...

I don't think you generally add objects into the map.  Rather, the map comes pre-populated
with objects that your code needs:  request, response, etc.

e.g.:

public class
YourGenerator extends ComposerGenerator {

     public void
     setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
         throws ProcessingException, SAXException, IOException {
         super.setup(resolver, objectModel, src, par);

                 Request  request = (Request)objectModel.get(Constants.REQUEST_OBJECT);
//System.out.println("request: "+request+"; rtf gen setup called @ "+new java.util.Date());
                 String  filename = request.getParameter("filename");


Note how in this generator, you can get a hold of the request object from out of the object
map.


So the "export-object" parameter that you were referring to is a means of transferring these
objects from Cocoon's object map into a place where velocity can find them.

According to the docs:

" Default Java objects exported to the Velocity context:

* request (org.apache.cocoon.environment.Request) -
* The Cocoon current request template (java.lang.String) -
* The path of the template file currently being evaluated response (org.apache.cocoon.environment.Response)
-
* The Cocoon response associated with the current request context (org.apache.cocoon.environment.Context)
-
* The Cocoon context associated with the current request parameters (org.apache.avalon.framework.parameters.Parameters)
-
Any parameters passed to the generator in the pipeline
"

That seems to pretty much cover most of the important object map objects that I think you'd
want to pass to velocity, so it doesn't seem like there'd be much need to use this parameter.

I suppose if you wanted to, though, you could add an object of your own to the object map
(see the generator code above; you could do this in an action too), and then have that object
get copied over to velocity using the "export-object" parm.


Whew!  Sorry for being so long winded.  Hope this helps.  Best I could do.  Someone correct
me if I'm wrong.


DR


At 04:23 PM 12/20/01 +0000, you wrote:
>Anyone?
>Help?
>
>
> > -----Original Message-----
> > From: david.greaves@idl-bt.com [mailto:david.greaves@idl-bt.com]
> > Sent: 20 December 2001 00:18
> > To: cocoon-users@xml.apache.org
> > Subject: How do I add objects to the objectModel Map
> > 
> > 
> > Hi
> > 
> > I hope this is straightforward...
> > 
> > How do I add objects to the objectModel Map?
> > 
> > http://xml.apache.org/cocoon/userdocs/generators/velocity-gene
>rator.html
>says:
><export-object key="objectMapKey" name="velocityContextName"/> (optional;
>0..n) - Export the object specified by key from the Cocoon object map to the
>Velocity context of the template. The object can be accessed from the
>template as name. Be careful to use a valid VTL variable name. 
>
>I've looked through the code but can't figure this one out.
>
>David
>
>
>---------------------------------------------------------------------
>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>
>
>---------------------------------------------------------------------
>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> 


---------------------------------------------------------------------
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