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
)。