Hi,

    I am wondering if there is any documentation on writing your own Utility 
Class or Custom Tool to add to Velocity. The only place I found some help is 
http://www.sergiy.ca/how-to-create-custom-tools-for-apache-velocity/  (There is 
something regarding Custom Tools at 
http://velocity.apache.org/tools/releases/2.0/creatingtools.html   - but I 
could not find anything regarding  Utility Classes that we can push into the 
Velocity Context.)

    Originally, I was thinking of doing my processing/customization in 
Velocimacros, but that is turning out to be a bit more complex/cumbersome than 
I expected. I am thinking of doing this in Java, and pushing the results to the 
Velocity Context as a single object/utility class instance. For purposes of 
discussion let us assume, I do something like the following in Java:
    VelocityContext context;
    context.put("myUtil", new MyUtil());
    
    I'd appreciate if I could get answers/ideas on:

1.    I am wondering if MyUtil() needs to be static across requests.  I intend 
MyUtil() to provide easy access and manipulation of the current request. Hence, 
I would probably do something like the following in Java:

context.put("myUtil", new MyUtil(currentWebRequest));

    i.e. I would instantiate MyUtil with the current Web Request. MyUtil could 
then provide easy access to say the Number of Rows in the Request. So in the 
Template I could do:

    $myUtil.NumRows

If MyUtil() is static, this would not work, because different requests would 
have different number of Rows. Should the Utility Class/Object be static? The 
example mentioned above shows only static methods, hence my question.

2.    Should my Utility class follow the bean syntax i.e. for the above example 
of  $myUtil.NumRows in the template, would I need to declare something like the 
following in the MyUtil Java class:

public int getNumRows() { }

3.    What would be a good way to pass a Constant from Java to the Template? 
Should I use the bean syntax again? E.g. in the template
$myUtil.JAVA_CONSTANT

    Would I need to have something like:
public int getJAVA_CONSTANT () { }

Thank you in advance for your help,
O. O.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@velocity.apache.org
For additional commands, e-mail: user-h...@velocity.apache.org

Reply via email to