JAVA调用JS函数
来源:互联网 发布:java实现图书管理系统 编辑:程序博客网 时间:2024/05/16 15:19
今天在开发中使用到了js和Java的交互,平时我们用的比较多的就是js调用Java的方法,可以使用dwr、Ajax、jquery。突然发现要Java调用js的话还真没有见过,今天上网查询了下资料,顺便总结一下:
前提条件:jdk1.6才支持,1.6以前的就不行了。
js代码如下:
function convert (id,str){if ('505041'==id){return str;}else{return "A";}}
Java代码如下:
package com.sc;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;public class JsTest {public static void main(String[] args) throws Exception { testJSFile(); } private static void testJSFile() throws Exception { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("javascript"); engine.eval(readJSFile()); Invocable inv = (Invocable) engine; Object res = (Object) inv.invokeFunction("convert", new String[] { "5050412", "D" }); System.out.println("res:" + res); } private static String readJSFile() throws Exception { StringBuffer script = new StringBuffer(); File file = new File("E:\\workspace\\test4\\WebRoot\\test.js"); FileReader filereader = new FileReader(file); BufferedReader bufferreader = new BufferedReader(filereader); String tempString = null; while ((tempString = bufferreader.readLine()) != null) { script.append(tempString).append("\n"); } bufferreader.close(); filereader.close(); return script.toString(); }}
在Java类中直接run就可以得到如下结果:
res:A
以此记录一下。
10 2
- JAVA调用JS函数
- 如何实现js调用java函数
- js返回函数调用
- flash调用js函数
- js 自动调用函数
- JS---- 函数调用模式
- js 函数调用顺序
- c# 调用js函数
- js this函数调用
- js调用as函数
- js对象调用函数
- JS调用后台函数
- js函数调用方式
- flash调用js函数
- js函数调用相关
- js函数调用
- JS调用OC函数
- JS函数的调用
- Makefile基础练习
- oracle11g中impdp导入dump文件
- java 类型信息 instanceof 和 isInstance区别
- LeetCode-Recover Binary Search Tree
- 4.锁--sun.misc.unsafe类的使用
- JAVA调用JS函数
- queue<ValueMap> g_worldGlobalQueue报错
- 关于近期oj上做题的整理[2]
- hdu 4920 Matrix multiplication(多校第5场,矩阵相乘)
- 深入理解DataAdapter(一)
- Jetty学习2.Eclipse中安装Jetty插件
- 不要被阶乘吓倒(2)
- SpringMVC整合fastjson-1.1.41
- JS获取本地文件绝对路径-预览本地图片