Java 6对脚本的支持
来源:互联网 发布:金林钣金展开软件2017 编辑:程序博客网 时间:2024/06/11 14:17
下面的例子将演示通过js给javaBean进行初始化。
Config.java
public class Config {private String version = "" ;private int server = 0 ;private String ip = "" ;public String getVersion() {return version;}public void setVersion(String version) {this.version = version;}public int getServer() {return server;}public void setServer(int server) {this.server = server;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}@Overridepublic String toString() {return "version = " + getVersion() + ",server = " + getServer() + ",ip = " + getIp() ;}}ScriptEngineForJavaScriptTest.java
package test.scriptengine;import java.io.IOException;import java.io.InputStreamReader;import java.io.Reader;import java.net.URL;import java.util.HashMap;import java.util.Map;import javax.script.Bindings;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.SimpleBindings;import org.apache.commons.io.IOUtils;public class ScriptEngineForJavaScriptTest {/** * @param args */public static void main(String[] args) {Config config = buildConfig() ;System.out.println(config.toString());}public static Config buildConfig(){ClassLoader _classLoad = Thread.currentThread().getContextClassLoader() ;URL url = _classLoad.getResource("config.js") ;Map<String, Object> _bindings = new HashMap<String, Object>() ;Config config = new Config() ;_bindings.put("config", config) ;String _scriptContext = null ;Reader _reader = null ;try{_reader = new InputStreamReader(url.openStream(), "UTF-8") ;_scriptContext = IOUtils.toString(_reader) ;}catch(IOException e){throw new IllegalStateException("can't load config from url["+url+"]") ;}ScriptEngineManager factory = new ScriptEngineManager() ;ScriptEngine engine = factory.getEngineByName("JavaScript") ;Bindings buindings = new SimpleBindings(_bindings) ;try{engine.eval(_scriptContext, buindings) ;}catch(Exception e){}return config ; }}
config.js初始化
config.version = "1.1.0" ;config.setServer(1010) ;config.setIp("192.168.1.1") ;
打印出来的结果:
version = 1.1.0,server = 1010,ip = 192.168.1.1
PS:比较有意思的是,可以直接对private的属性进行直接赋值
- Java 6对脚本的支持
- WinCE 对 Java脚本的支持
- Java SE 6 对脚本语言的支持
- VIM:简化的单语言项目脚本──对Java项目开发的支持
- Java对多线程的支持
- Java对多媒体的支持
- Java对多媒体的支持
- java对管程的支持
- Java对脚本语言的支持
- IE浏览器开启对JavaScript脚本的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6概述--对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Java SE 6 新特性: 对脚本语言的支持
- Perl文件及目录操作
- Linux下的vi 指令详解
- SqlServer判断(数据库,表,视图,存储过程等)是否存在
- 消息报头
- mysql 按时间查询
- Java 6对脚本的支持
- 16-7,List
- JAVA的网络编程
- 深入浅出.NET代码生成系列(4):定义类型
- eclipse中跑selenium测试 - [java]
- UPOP数据统计系统中的批量导入数据功能
- Java Double相加出现的怪事
- 210平台调试Ft5406驱动
- 16-8,列表迭代器对象ListIterator it = list.listIterator()