Archive

Posts Tagged ‘java script’

Java中使用JS解析器(JDK 1.6)

September 28th, 2009 cashplk No comments

最近项目中涉及以下情景,针对用户设置一对规则,用户申请的时候按照设定的规则进行验证。

表结构如下:

规则表:

rule_id rule_type rule_name status
规则Id 规则类型 规则名称 状态

规则明细表:

rule_id rule_detail_id rule_name rule_Type expression rule_value
规则Id 明细规则Id 规则名称 规则key 表达式(>=,==,<=,<,>) 规则值

涉及规则值的判断和解析,找了半天,高手指点使用JS解析。代码如下(JDK1.6):

import javax.script.ScriptEngineManager;
 
ScriptEngineManager factory = new ScriptEngineManager();
 
ScriptEngine engine = factory.getEngineByName(“JavaScript”);
 
String ruleType = "1";
 
String expression = "&gt;";
 
long ruleValue = 111;
 
long v = 222;               // 需要验证的值
 
JavaScriptValue j = new JavaScriptValue(ruleType, v);
 
engine.eval(j.toSting());
 
Boolean b = (Boolean)engine.eval(ruleType + expression + ruleValue);   // 判断2个表达式是否相等

cashplk的心路历程 is Digg proof thanks to caching by WP Super Cache