java 转 js_JAVA转让JS功能

本文介绍了如何在Java应用中调用JavaScript代码,以实现Java到JavaScript的功能转换。通过示例展示了使用ScriptEngineManager和Invocable接口来执行JS函数并获取返回值,从而在Java中调用并运行JavaScript的`convert`函数。
摘要由CSDN通过智能技术生成

今天,在发展中使用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

在此录制。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值