如何从js代码中读取传入的一个java对象的属性

如何从js代码中读取传入的一个java对象的属性,第1张

function queryArea() {

return false;

$("#areaId")empty();

$("<option value='-1'>未选区域</option>")appendTo($("#areaId"));

$ajax({url:"clazz-servicejspaction=getAreaList",data:$("#infoForm")serialize(),type:"post",

complete:function(text) {

var obj = eval("("+textresponseText+")");

if(objflag == "ok") {

//$("#areaId")empty();

var i = 0;

$each(objdata, function(index) {

$("<option value='"+objdata[index]id+"'>"+objdata[index]name+"</option>")appendTo($("#areaId"));

i++;

});

} else {

//setTimeout(function() {

//}, 2000);

}

}

});

}

JSP

public void getAreaList(>

在Java中调用js文件中的function,传入调用参数,并获取返回值

js文件中的merge函数将两个参数a,b相加,并返回c。

// expressionjs

function merge(a, b) {

c = a b;

return c;

}

在Java代码中读取js文件,并参数两个参数,然后回去返回值。

package comsinaappmanjushri;

import javaioFileReader;

import javaxscriptInvocable;

import javaxscriptScriptEngine;

import javaxscriptScriptEngineManager;

/ Java调用并执行js文件,传递参数,并活动返回值 @author manjushri /

public class ScriptEngineTest {

public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = managergetEngineByName("javascript");

String jsFileName = "expressionjs"; // 读取js文件

FileReader reader = new FileReader(jsFileName); // 执行指定脚本

engineeval(reader);

if(engine instanceof Invocable) {

Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数

// c = merge(2, 3);

Double c = (Double)invokeinvokeFunction("merge", 2, 3);

Systemoutprintln("c = " + c);

}

readerclose();

}

}

输出结果:

c = 50

用DWR

它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容

DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用

这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处

DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程

另处 dwr还是文件的一种格式: 比如以Dreamweaver软件里有查找和替换,经常用的查找和替换内容可以保存,保存的文件就是以 dwr结尾的文件。这种文件用记事本打开后可以看到它的内容。

思路 1、java端建立servlet服务,js通过ajax等方式调用servlet 2、可以通过dwr等第三方方式集成,然后调用java方法 3、用jsp,使用的方式进行脚本执行 举例 var a= ""; //Test就是java类,buttonTest就是java的函数

以上就是关于如何从js代码中读取传入的一个java对象的属性全部的内容,包括:如何从js代码中读取传入的一个java对象的属性、JS 文件如何获取数据库中的数据、如何在java中调用js方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10145187.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存