zoukankan      html  css  js  c++  java
  • Java执行javascript

    package com.byd.mes.util.script;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.script.Invocable;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    
    import sun.org.mozilla.javascript.internal.NativeObject;
    
    public class ScriptUtils {
    	private static final ScriptEngineManager manager = new ScriptEngineManager();
    	private Map<String,Callback> custom = new HashMap<String,Callback>();
    	
    	public interface Callback{
    		void callBack(String script);
    	}
    	
    	private Map<String,Callback> conf = new HashMap<String,Callback>();
    	{
    		conf.put("testing", new ScriptUtils.Callback(){
    			@Override
    			public void callBack(String script) {
    				ScriptEngine engine = manager.getEngineByName("javascript");
    				try {
    					engine.eval(script);
    					Invocable invocableEngine = (Invocable)engine;
    					NativeObject obj = (NativeObject) invocableEngine.invokeFunction("testing", 1);			
    					System.out.println(obj.get("nextOperation", null));
    				} catch (Exception e) {
    					throw new RuntimeException("执行Script脚本失败[function:testing]",e);
    				}
    				
    			}});
    	}
    	
    	public static void testing(String script){
    		
    	}
    
    	public void setCustom(Map<String,Callback> custom) {
    		this.custom = custom;
    		this.conf.putAll(custom);
    	}
    
    	public Map<String,Callback> getCustom() {
    		return custom;
    	}
    }
    
  • 相关阅读:
    JS实现 div拖拽 限制在屏幕内
    国际化配置simple_form
    simple_form模板templates erb haml
    git rolify
    rails模板生成bootstrap格式的simple_form的erb文件
    rails生成器生成自定义controller模板
    ubuntu 终端常用命令(转)
    Ruby for Rails笔记
    Java基础
    javascript ybmiaov
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606886.html
Copyright © 2011-2022 走看看