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]