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");