java里可以调用js里的参数吗,js调用java方法

发布时间:2023-12-08

java里可以调用js里的参数吗,js调用java方法

更新:2022-11-22 10:28

本文目录一览:

1、[java 调用 js函数](#java 调用 js函数)
2、java怎么调用javascript
3、如何在java中调用js方法
4、java如何调用js里的变量

java 调用 js函数

function 是属于 JavaScript 里面的语法,而 % 里面调用的是 Java 的语法,所以想要用 % 调用 alert() 是不行的,因为他们不是同一个东西。 不知道你的意思是不是页面一加载就进行调用 alert(),如果是这样的话,建议使用 onload 事件,表示页面加载的时候调用 alert()。 或者如果是点击的时候调用,那么就调用 onclick()。总而言之可以使用事件完成。

java怎么调用javascript

可参考:

package javaIjs;
/**
 * @param args
 */
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
/**
 * Java调用并执行js文件,传递参数,并活动返回值
 *
 * @author manjushri
 */
public class ScriptEngineTest {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("javascript");
        String jsFileName = System.getProperty("user.dir") + "/src/javaIjs/expression.js";
        // 读取js文件
        FileReader reader = new FileReader(jsFileName);
        // 执行指定脚本
        System.out.println(engine.getContext().getReader());
        engine.eval(reader);
        if (engine instanceof Invocable) {
            Invocable invoke = (Invocable) engine;
            // 调用merge方法,并传入两个参数
            // c = merge(2, 3);
            Double c = (Double) invoke.invokeFunction("merge1", 21, 3);
            System.out.println("c = " + c);
        }
        reader.close();
    }
}

如何在java中调用js方法

有时候因为需要,我们想在 Java 中调用 JS 方法,不再是像页面中一个事件触发,该如何做到呢?今天下午没事的时候小研究了下,现跟大家分享一下。不对之处,望大家指正,共同进步!

/*
 * 加载脚本引擎,并在java中调用js方法
 */
public void test2() {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");
    try {
        String str = "21";
        Double d = (Double) engine.eval(str);
        Integer i = d.intValue();
        System.out.println(i);
    } catch (ScriptException ex) {
        ex.printStackTrace();
    }
}
/*
 * 在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。
 * 并通过JDK平台给script的方法中的形参赋值
 */
public void test(String name) {
    ScriptEngineManager sem = new ScriptEngineManager();
    /*
     * sem.getEngineByExtension(String extension)参数为js
     * sem.getEngineByMimeType(String mimeType) 参数为application/javascript 或者text/javascript
     * sem.getEngineByName(String shortName)参数为js或javascript或JavaScript
     */
    ScriptEngine se = sem.getEngineByName("js");
    try {
        String script = "function say(){ return 'hello,'"+name+"; }";
        se.eval(script);
        Invocable inv2 = (Invocable) se;
        String res = (String)inv2.invokeFunction("say", name);
        System.out.println(res);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
/*
 * 演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。
 */
public void testScriptVariables() {
    ScriptEngineManager sem = new ScriptEngineManager();
    ScriptEngine engine = sem.getEngineByName("js");
    File file = new File("c://1.txt");
    engine.put("f", file);
    try {
        engine.eval("println('path:'+f.getPath())");//无法使用alert方法
    } catch (ScriptException e) {
        e.printStackTrace();
    }
}
/*
 * 演示如何在java中如何通过线程来启动一个js方法
 */
public void testScriptInterface() throws ScriptException {
    ScriptEngineManager sem = new ScriptEngineManager();
    ScriptEngine engine = sem.getEngineByName("js");
    String script = "var obj=new Object();obj.run=function(){println('test thread')}";
    engine.eval(script);
    Object obj = engine.get("obj");//获取js中对象
    Invocable inv = (Invocable) engine;
    Runnable r = inv.getInterface(obj, Runnable.class);
    Thread t = new Thread(r);
    t.start();
}

这样 Java 就可以执行动态语言了,不过注意是 JDK1.6 版本的哦~ 这样写不知道你能不能看懂,这个问题远标 java 就已经讲过这个题目了,希望能帮到你!

java如何调用js里的变量

在 JSP 中经常会遇到把 JS 变量赋给 Java 变量,或者将 Java 变量赋给 JS 变量的情况,在此将通用的处理方法小结如下: Java 变量传给 JS 好办,var a = ""; 注意要将引号 "" 加上;JS 变量给 Java 稍微复杂点,一般是在表单中用一个隐藏表单元素,然后在脚本中将 JS 变量值赋给它: JS 代码:

var jsParamValue = 'aaaa';
form1.jsParam.value = jsParamValue;

Java 代码:

request.getParameter("jsParam");