1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| import javax.script.Compilable;
import javax.script.CompiledScript;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import fr.socram.assise.socle.logger.SocramLogger;
public class ManageSessionStorage {
public static final String GETTER_JS_VARIABLE = "var myGetterJs = function() { return eval('window.sessionStorage.test'); };";
public Boolean getItemValueSessionStorage() {
Boolean result = false;
try {
// Retrieving the Javascript engine
ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript");
if (Compilable.class.isAssignableFrom(se.getClass())) {
// We can compile our JS code
Compilable c = (Compilable) se;
CompiledScript cs = c.compile(GETTER_JS_VARIABLE);
cs.eval();
}
else {
// We can't compile our JS code
se.eval(GETTER_JS_VARIABLE);
}
// Can we invoke myFunction()?
if (Invocable.class.isAssignableFrom(se.getClass())) {
Invocable i = (Invocable) se;
if (i.invokeFunction("myGetterJs", itemName) != null) {
result = Boolean.parseBoolean(i.invokeFunction("myGetterJs").toString());
}
}
}
catch (Exception e) {
// TODO: handle exception
}
return result;
}
} |
Partager