怎么在js中把java数组转成js数组

JavaScript07

怎么在js中把java数组转成js数组,第1张

Java 代码如下:

<%

//得到要转换的数组---当然这里也可以是其他类型的数组

List jsList = (List) request.getAttribute("gczbh")

%>

JS 代码如下:

<script type="text/JavaScript">

function initPages()

{

var codes = new Array()

// 将JAVA中的数组转换成JS 的数组

<%

if(jsList!=null)

{

for(int i=0i<jsList.size()i++)

{

%>

codes[<%=i%>]='<%=jsList.get(i)%>'

<% }

}

%>

</script>

<!DOCTYPE HTML>

<html>

<head>

<title>Page Title</title>

<meta http-equiv="Content-Type" content="text/html charset=UTF-8" />

<script>

var b = {

a: []

}

(function()

{

b.a = [

'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',

'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',

'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'

 ]

})()

var a = function ( arg8 ){

var v1 = []

var v2 = arg8.length

var v0 = 0

while(v0 < v2){

var v3 = v0 + 1

var v4 = arg8[v0] & 255

if (v3 == v2)

{

v1.push (b.a[v4 >>> 2])

v1.push (b.a[( v4 & 3 ) << 4])

v1.push ("==")

}

else

{

var v5 = v3 + 1

v3 = arg8[v3] & 255

if (v5 == v2)

{

v1.push (b.a[v4 >>> 2])

v1.push (b.a[( v4 & 3 ) << 4 | ( v3 & 240 ) >>> 4])

v1.push (b.a[( v3 & 15 ) << 2])

v1.push ("=")

}

else

{

v0 = v5 + 1

v5 = arg8[v5] & 255

v1.push (b.a[v4 >>> 2])

v1.push (b.a[( v4 & 3 ) << 4 | ( v3 & 240 ) >>> 4])

v1.push (b.a[( v3 & 15 ) << 2 | ( v5 & 192 ) >>> 6])

v1.push (b.a[v5 & 63])

continue

}

}

break

}

return v1.join("")

}

console.log(a ([1,1]))

</script>

</head>

<body>

 

</body>

</html>

   本例子使用了JDK 以上的javax script包 通过Invocable接口实现JAVA调用JS脚本里的方法 本例中调用分为内部执行脚本和外部执行脚本 外部执行脚本分为不带参数调用和带参数调用 主要采用invokeFunction方法调用         ObjectinvokeFunction(String name Object… args)        用于调用脚本中定义的顶层程序和函数         ObjectinvokeMethod(Object thiz String name Object… args)        对以前的脚本执行中已经编译的脚本对象(以 ScriptEngine 的状态保持)调用某一方法         package de javase        import javax script Invocable        import javax script ScriptEngineManager        import javax script ScriptEngine        import java io File        import java io Reader        import java io FileReader        public class AjavaInvokingFunction {        public static void main(String[] args) {        // 获得一个JavaScript脚本引擎 也可以是ECMAScript脚本引擎        ScriptEngineManager manager = new ScriptEngineManager()         ScriptEngine engine = manager getEngineByName( JavaScript )         String titlescript = function sayTitle() {         +    println( 源码实例 使用javax script调用JS脚本里的方法 )         +    println( )         + }         try {   

    // 调用内部脚本执行         engine eval(titlescript)         // 转换为Invocable        Invocable invocableEngine = (Invocable) engine        // 不带参数调用sayTitle方法        invocableEngine invokeFunction( sayTitle )         // 调用外部脚本执行         // 创建JS文件的File对象 并读入流        File functionscript = new File( ajava js )         Reader reader = new FileReader(functionscript)         // 开始执行ajava js里的程序        engine eval(reader)         // 不带参数调用sayHello方法        invocableEngine invokeFunction( sayHello )         // 带参数调用sayHello方法        invocableEngine invokeFunction( sayHello mark )         } catch (Exception e) {        e printStackTrace()         }        }        }        ajava js文件         function sayHello(){        sayHello(null)         }        function sayHello(name){        if(name==null){        println( 欢迎你!请注册Ajava会员 )         }else{        println(name+ 独立JAVA社区欢迎你 )         }        }        运行结果(控制台)         源码实例 使用javax script调用JS脚本里的方法 lishixinzhi/Article/program/Java/hx/201311/26436