js如何接收处理后台传来的list 20
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);
}
2017-09-14
从java后台返回List<String>类型数据,用于界面显示。但js中想获取它并操作它。直接使用EL表达式,js把它识别成字符串了。不是我想要的啊。。网上搜了搜大家的解决方案...最好的当然是把List集合转成json格式传到界面上。这样js里面操作也简单,页面也没有影响。
解决:
将List<String> 转成json,传到界面。js中使用var arr = eval(‘${list}');将list转成js数组。
我的代码:
复制代码代码如下:
var keyList = eval('${keysList}');
var values = $("#paramsValues").val();
var noSet = [];
for(var i=0;i<keyList.length;i++){
if(values.indexOf(keyList[i])==-1){
noSet.push(keyList[i]);
}
}
我的代码:
复制代码代码如下:
var keyList = eval('${keysList}');
var values = $("#paramsValues").val();
var noSet = [];
for(var i=0;i<keyList.length;i++){
if(values.indexOf(keyList[i])==-1){
noSet.push(keyList[i]);
}
}
JSONObject.valueToString(list) 传到页面
js代码
var haha = eval('${list }');