Odhliadnucod toho, ze v Jave 6 je podpora scriptovacich jazykov, da sa pouzit Expression Evaluator z projektu JakartaCommons .
http://jakarta.apache.org/commons/el/api/org/apache/commons/el/ExpressionEvaluatorImpl.html#evaluate(java.lang.String,%20java.lang.Class,%20javax.servlet.jsp.el.VariableResolver,%20javax.servlet.jsp.el.FunctionMapper) Pri pouzite tejto metody potrebujete : javax.servlet.jsp.el.VariableResolver pResolver - nieco, co vrati podla mena premennu, da sa vyriesit dakym obalovacom Map javax.servlet.jsp.el.FunctionMapper functions , v metode resolveFunction vratite staticku metodu. Keby to zaujimalo viac ludi, zmohol by som sa na daku ukazku. V J2EE aplikaciach je uz tato implementacia pribalena v JSP knizniciach ale nikto to nevie/nechce pouzivat. Quoting Adámek Luká¹ <[EMAIL PROTECTED]>: > Dobry den vsem > > > > Mam dotaz. :D > > > > V tabulce mam ulozeny zaznamy obsahujici: id, nazev, hodnotu a vzorec. > > Id a nazev jsou jasne, hodnota muze obsahovat cislo nebo null, a vzorec > obsahuje String. > > Aplikacne je osetreno, ze zaznam vzdy obsahuje pouze hodnotu, nebo pouze > vzorec. > > Vzorec obsahuje id jinych radku spojene zakladnimi matematickymi operatory +, > -, *, /, (, ). > > > > A muj dotaz zni, existuje v Jave nejaka knihovna, ktera by umela napriklad > vzorce po dosazeni realnych hodnot vyhodnotit? > > > > Mam na mysli toto: v tabulce mam tyto zaznamy: > > 111 nazev1 4 null > > 222 nazev2 8 null > > 333 nazev3 null (111+222)/4 > > > > Vezmu nejakou funkci poptavane knihovny a provedu: > > Funkce f = new Funkce("(111+222)/4"); > > f.setParameter("111", 4); > > f.setParameter("222", 8); > > float vysledek = f.vypocti(); > > System.out.println(vysledek); > > > > A vystupem bude 3; > > > > > > Diky > > > >
