js如何接收处理后台传来的list

JavaScript019

js如何接收处理后台传来的list,第1张

List数据,从java后台传至js中接收的方法:

新建bean类

public class Test {

private int Id

public int getId() {

return Id

}

public void setId(int id) {

Id = id

}

}

2.再建返回List<Bean类>的java方法

public List<Test>list(){

Test t=new Test()

t.setId(1)

List<Test>list = new ArrayList<Test>()

list.add(t)

return list

}

3.配置web.xml——补加导入dwr配置的代码

<servlet>

<servlet-name>dwr-invoker</servlet-name>  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>true</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>dwr-invoker</servlet-name>

<url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

4.配置dwr.xml——creator+concert

<allow>

<create creator="new" javascript="service">

<param name="class" value="com.telek.dwr.Service" />

</create>

<convert converter="bean" match="com.telek.dwr.Test">

<param name="include" value="id"/>

</convert>

</allow>

5.js文件中正确接收

function callBackHello(data){

alert(data[0].id)

}

function testList(){

service.list(callBackHello)

}

有很多种方式的 前提是这个list只能在返回的jsp页面去获取,不可以在单独的js文件中获取,除非是使用ajax请求返回的list。

首先可以用EL表达式去获取Controller或Action返回的list,代码如下

var list = ${list}

如果你使用了status的话 也可以用s标签获取。

也可以使用ajax去异步获取。

使用xmlhttprequest发出请求到后台

创建xmlhttprequest对象不同浏览器略有不同,大致可以参考如下

/* Util Functions */

function createXmlHttpRequest() {

if (window.XMLHttpRequest) { //None-IE

return new XMLHttpRequest()

}

else {

return new ActiveXObject("Microsoft.XMLHTTP")

}

}

获得相应后把响应的数据直接付给变量

var xmlHttpRequest = createXmlHttpRequest()

xmlHttpRequest.open("GET", url_disk_list_full, false)

xmlHttpRequest.send()

if (xmlHttpRequest.status == 200) {

var result = eval("(" + xmlHttpRequest.responseText + ")")

//现在result里面就是这个列表了,可以直接使用

}