Hi Barbara,
Hi Will,

Thanks a lot for your response.
As Will says, #set can make any class objects.
In fact, I often make instances of ArrayList, and use them.
But I think whether there are tools like org.apache.velocity.tools.
struts.MessageTool or not.

I will follow Will's advice to implement methods like $util.
getPropertyResourceBundle( path ) in $util.

BTW, why do you propse to limit to use reflection ?
It's a powerful way to provide such availability into velocity realm, I 
guess. Would you mind asking you for reasons ?

Best Regards,
trad-ex


>Are you sure?  I think #set can be used for any class.
>
>I've proposed to limit this to prohibit reflection by default (such as what
>trad-ex is doing), but we haven't applied the patch yet.
>
>WILL
>
>On 4/20/06, Barbara Baughman <[EMAIL PROTECTED]> wrote:
>>
>> You cannot use the #set directive to designate just any kind of JAVA
>> object.  See the User Guide for allowable references.  I believe the
>> #set directive you have will automatically call the toString method of
>> the class in order to set the variable to a valid reference, but you
>> can check by printing the value of the set variable.
>>
>> Barbara Baughman
>> X2157
>>
>> On Thu, 20 Apr 2006, trad-ex wrote:
>>
>> > Hi All,
>> >
>> > I tried to load property resource bundle file, but failed to get an
>> > instance of FileInputStream.
>> > My code is below:
>> >
>> > #set( $fStreamClass = $util.class.forName("java.io.FileInputStream") )
>> > #set( $iStreamClass = $util.class.forName("java.io.InputStream") )
>> > #set( $stringClass = $util.class.forName("java.lang.String") )
>> > #set( $bundleClass
>> >      = $util.class.forName("java.util.PropertyResourceBundle") )
>> > #set( $userNameFilePath = $util.getPortalFile($userNameFile) )
>> > #set( $resStream
>> >      = $fStreamClass.getConstructor( [$stringClass] )
>> >        .newInstance( ["$userNameFile"] ) )
>> > #set( $resBundle
>> >      = $bundleClass.getConstructor( [$iStreamClass] )
>> >      .newInstance( [$resStream] ) )
>> >
>> > $util object is provided by our application to inject functionality into
>> > velocity context.
>> > I succeeded to get $fStreamClass & $iStreamClass & $bundleClass
>> > But I failed to get $resStream & $resBundle.
>> >
>> > My questions are:
>> > 1. Can I load the specific property file in Velocity context ?
>> > 2. What's wrong with my velocity script ?
>> >
>> > Best Regards, and thanks in advance.
>> > trad-ex
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>--
>Forio Business Simulations
>
>Will Glass-Husain
>[EMAIL PROTECTED]
>www.forio.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to