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

JavaScript047

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去异步获取。

后台跳转页面,通过httpservletrequest.setattribute("list",list) ,前台c标签,jstl获取list集合加载getattribute("list")。

js onload事件  ajax 获取后台返回的list集合(注意ajax属性async: false

)。