DWR返回LIST
list中如果装载的不是基本类型的数据,而是java bean的话,需要在dwr.xml中配置convert参数,才能在页面上将数据 转换成js对象。
如果配置了这个参数的话,在页面上使用data.XXX来访问该对象中的属性。比如有个user对象里面有name属性,和getName方法,则只需要 使用data.name来取得该值。
LIST中的BEAN其实就是转换成了JSON
具体做法如下 (网络搜索的例子)
dwr.xml里的代码如下:
XML:
- < dwr >
- < allow >
- < create creator="new" javascript="DwrTest" >
- < param name="class" value="com.Dao.DwrTest"/ >
- < /create >
- < convert match="com.Action.Admin" converter="bean" >
- < param name="include" value="id,admin_Name,admin_Pwd,mark_id" / > // Admin的bean中包含这四个属性,bean文件内容我就不贴出来了,
- < /convert >
- < /allow >
- < /dwr >
TestDao类的内容如下:
JAVA:
- public class TestDao{
- public List< Admin > Send(int mark){
- List< Admin > list = new ArrayList< Admin >();
- try {
- while(rs.next()){
- Admin admin = new Admin();
- admin.setId(rs.getInt(1));
- admin.setAdmin_Name(rs.getString(2));
- admin.setAdmin_Pwd(rs.getString(3));
- admin.setMark_id(rs.getInt(4));
- list.add(admin);
- }
- e.printStackTrace();
- }
- return list;
- }
- }
DwrTest类内容如下:
[java]
public class DwrTest{
TestDao dao= new TestDao();
public List<Admin> Send(int mark) {
return dao.Send(mark);
}
}
[java]
jsp文件内容如下:
HTML:
- < html >
- < head >
- < meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
- < TITLE >DWR返回list的一个简单例子< /TITLE >
- < meta http-equiv=Content-Type content="text/html; charset=gb2312" >
- < script src="dwr/engine.js" >< /script >
- < script src="dwr/util.js" >< /script >
- < script src="dwr/interface/DwrTest.js" >< /script >
- < SCRIPT LANGUAGE="JavaScript" >
- function CallBack(data) {
- if (data.length == 0) {
- alert("参数传递出现错误!");
- }else{
- for(var i=0;i< data.length;i++){
- addRow(data[i].admin_Name,data[i].admin_Pwd,data[i].mark_id); // 表格添加一行
- }
- }
- }
- function Send(mark){
- DwrTest.Send(mark,CallBack);
- }
- function showTable(mark){
- var i=1;
- for(i=form1.maxrow.value; i >0 ; i--)
- {
- deleteRow(i);
- }
- form1.maxrow.value = 0;
- Send(mark); // 通过mark参数来判断要动态显示的内容
- }
- function deleteRow(index){
- var tableObj=document.getElementById("mytable");
- tableObj.deleteRow(index);
- }
- function addRow(username,password,mark_id){
- var tableObj=document.getElementById("mytable");
- var newRowObj=tableObj.insertRow(tableObj.rows.length);
- var newColName=newRowObj.insertCell(newRowObj.cells.length);
- var newColPwd=newRowObj.insertCell(newRowObj.cells.length);
- var newColMrk=newRowObj.insertCell(newRowObj.cells.length);
- newColName.innerHTML=username;
- newColPwd.innerHTML=password;
- newColMrk.innerHTML=mark_id;
- form1.maxrow.value = parseInt(form1.maxrow.value) + 1;
- }
- < /SCRIPT >
- < BODY >
- < form name="form1" >
- < p align="center" >
- < input type="button" value="用户类别一 " onmouseover="showTable(1)" > // 传参数 mark=1
- < input type="button" value="用户类别二" onmouseover="showTable(2)" >
- < input type="button" value="用户类别三" onmouseover="showTable(3)" >
- < input type="button" value="用户类别四" onmouseover="showTable(4)" >
- < /p >
- < table width="50%" id="mytable" border="1" bordercolor="whitesmoke" >
- < tr align="center" >< td >用户名< /td >< td >密码< /td >< td类 别< /td >< /tr >
- < /table >
- < input type="hidden" name="maxrow" value="0" >
- < /form >
- < /body >
- < /html >