Java objekty se daji ze skriptu (pri pouziti JSR 223) vytvaret a predavat do Javy, taky se da pomoci ScriptEngine.put() predat libovolny objekt s prirazenym klicem (String), to si ukazeme priste.
Volani libovolnych objektu ze skriptu (mysleno nepredane objekty) neni povoleno, aby script-kiddies meli trosku ztizenou praci :-)
Potom to znamena, ze to v Java skriptovani funguje rovnako ako vo Velocity.
Akeho nahradnika mate na mysli? Velocity som pouzival v diplomke, ale potom som zistil, ze Freemarker je v niektorych ohladoch lepsi, krajsia syntax a podobne (i ked Velocity odvtedy vstalo z mrtvych a zmenilo sa).
Ono realne je otazka, v akom pripade chcete vytvarat instancie objektov v skripte -- mal som konkretnu situaciu, ked som chcel skriptovat v XWiki (tam je povolene skriptovanie v Groovy a Velocity, ale v obmedzenych pripadoch len to druhe) a chcel som sa vyhnut vytvaraniu tried.
Myslim, ze snaha instanciovat objekty v sablonovom stroji je podozriva, kedze sa vam miesaju vrstvy.
Jen je zapotrebi dat si pozor na to, ktera metoda objektu se ve skutecnosti zavola a to kvuli tomu, ze nektere verze Rhina spatne rozeznavaji napriklad Integer a Double (vsechna cisla berou jako Double):
function accessJavaObject(object) { object.overloaded(new java.util.Date()); object.overloaded('Hello world'); object.overloaded(42); object.overloaded(1/3.0); };
V pripade, ze predany objekt ma napriklad metody overloaded(Date), overloaded(Integer) a overloaded(Double).