Some print.
Some print.
~SingleForum~无废话记录~ + ~19~记录点有用的好吗?少说废话少装b~

~SingleForum~无废话记录~ » java

DWR返回LIST

Started 8 months ago by admin. | Tags: . .

DWR返回LIST

list中如果装载的不是基本类型的数据,而是java bean的话,需要在dwr.xml中配置convert参数,才能在页面上将数据 转换成js对象。

如果配置了这个参数的话,在页面上使用data.XXX来访问该对象中的属性。比如有个user对象里面有name属性,和getName方法,则只需要 使用data.name来取得该值。

LIST中的BEAN其实就是转换成了JSON

具体做法如下 (网络搜索的例子)

dwr.xml里的代码如下:

XML:
  1. < dwr >
  2.     < allow >
  3. < create creator="new" javascript="DwrTest" >
  4.        < param name="class" value="com.Dao.DwrTest"/ >
  5.     < /create >
  6.     < convert match="com.Action.Admin" converter="bean" >
  7.     < param name="include" value="id,admin_Name,admin_Pwd,mark_id" / >   // Admin的bean中包含这四个属性,bean文件内容我就不贴出来了,
  8.     < /convert >
  9.     < /allow >
  10. < /dwr >

TestDao类的内容如下:

JAVA:
  1. public class TestDao{
  2. private static Connection conn = Conn.GetConn();    //获得数据库连接
  3.     public List< Admin > Send(int mark){
  4.     List< Admin > list = new ArrayList< Admin >();
  5.     try {
  6.     Statement stat = conn.createStatement();
  7.     String QueryStr = "select * from admin_info where mark_id="+mark+"";
  8.     ResultSet rs = stat.executeQuery(QueryStr);
  9.     while(rs.next()){
  10.      Admin admin = new Admin();
  11.      admin.setId(rs.getInt(1));
  12.      admin.setAdmin_Name(rs.getString(2));
  13.      admin.setAdmin_Pwd(rs.getString(3));
  14.      admin.setMark_id(rs.getInt(4));
  15.      list.add(admin);
  16.     }
  17.    } catch (SQLException e) {
  18.     e.printStackTrace();
  19.    }
  20.     return list;
  21.     }
  22. }

DwrTest类内容如下:

[java]
public class DwrTest{
TestDao dao= new TestDao();
public List<Admin> Send(int mark) {
return dao.Send(mark);
}
}
[java]

jsp文件内容如下:

HTML:
  1. < html >
  2. < head >
  3. < meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
  4. < TITLE >DWR返回list的一个简单例子< /TITLE >
  5. < meta http-equiv=Content-Type content="text/html; charset=gb2312" >
  6. < script src="dwr/engine.js" >< /script >
  7. < script src="dwr/util.js" >< /script >
  8. < script src="dwr/interface/DwrTest.js" >< /script >
  9. < SCRIPT LANGUAGE="JavaScript" >
  10. function CallBack(data) {
  11.      if (data.length == 0) {
  12.        alert("参数传递出现错误!");
  13.    }else{
  14.     for(var i=0;i< data.length;i++){
  15.      addRow(data[i].admin_Name,data[i].admin_Pwd,data[i].mark_id);   // 表格添加一行
  16.     }
  17.    }
  18. }
  19. function Send(mark){
  20.    DwrTest.Send(mark,CallBack);
  21. }
  22. function showTable(mark){
  23.    var i=1;
  24.    for(i=form1.maxrow.value; i >0 ; i--)
  25.    {
  26.      deleteRow(i);
  27.    }
  28.    form1.maxrow.value = 0;
  29.    Send(mark);          // 通过mark参数来判断要动态显示的内容
  30. }
  31. function deleteRow(index){
  32.    var tableObj=document.getElementById("mytable");
  33.    tableObj.deleteRow(index);
  34. }
  35.  
  36. function addRow(username,password,mark_id){
  37.    var tableObj=document.getElementById("mytable");
  38.    var newRowObj=tableObj.insertRow(tableObj.rows.length);
  39.    var newColName=newRowObj.insertCell(newRowObj.cells.length);
  40.    var newColPwd=newRowObj.insertCell(newRowObj.cells.length);
  41.    var newColMrk=newRowObj.insertCell(newRowObj.cells.length);
  42.    newColName.innerHTML=username;
  43.    newColPwd.innerHTML=password;
  44.    newColMrk.innerHTML=mark_id;
  45.   form1.maxrow.value = parseInt(form1.maxrow.value) + 1;
  46. }
  47. < /SCRIPT >
  48. < BODY >
  49. < form name="form1" >
  50. < p align="center" >
  51.    < input type="button" value="用户类别一 " onmouseover="showTable(1)" > // 传参数 mark=1
  52.    < input type="button" value="用户类别二" onmouseover="showTable(2)" >
  53.    < input type="button" value="用户类别三" onmouseover="showTable(3)" >
  54.    < input type="button" value="用户类别四" onmouseover="showTable(4)" >
  55. < /p >
  56. < table width="50%" id="mytable" border="1" bordercolor="whitesmoke" >
  57.    < tr align="center" >< td >用户名< /td >< td >密码< /td >< td类 别< /td >< /tr >
  58. < /table >
  59.     < input type="hidden" name="maxrow" value="0" >
  60. < /form >
  61. < /body >
  62. < /html >

RSS feed for this topic