Dwr — 如何接收自定義類型的返回值

Dwr — 如何接收自定義類型的返回值

1. 自定義類型User

package org.ljm.dwr.service;

public class User {

    private int id;
    private String username;
    private Group group;

    public User() {
    }

    public User(int id, String username, Group group) {
        this.id = id;
        this.username = username;
        this.group = group;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Group getGroup() {
        return group;
    }

    public void setGroup(Group group) {
        this.group = group;
    }

}

2. 自定義類型Group

package org.ljm.dwr.service;

public class Group {

    private int id;
    private String name;

    public int getId() {
        return id;
    }


    public void setId(int id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public Group() {
    }


    public Group(int id, String name) {
        this.id = id;
        this.name = name;
    }

}

3. 要被客戶端調用的類UserService

package org.ljm.dwr.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserService {

    public static Map<String,User> users = new HashMap<String,User>();

    static {
        users.put("1", new User(1,"孫悟空",new Group(1,"取經組")));
        users.put("2", new User(2,"豬八戒",new Group(1,"取經組")));
        users.put("3", new User(3,"白骨精",new Group(2,"吃肉組")));
        users.put("4", new User(4,"紅孩兒",new Group(2,"吃肉組")));
    }

    public List<User> list() {
        List<User> us = new ArrayList<User>();
        for(String key : users.keySet()) {
            us.add(users.get(key));
        }
        return us;
    }

    public void add(User user) {
        users.put(String.valueOf(user.getId()), user);
    }

    public User user(String id) {
        return users.get(id);
    }
}

4. dwr.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">

<dwr>

  <allow>
    <!-- 將java對象公佈爲javascript對象 -->
    <create creator="new">
      <param name="class" value="org.ljm.dwr.service.DwrHello"/>
    </create>
    <create creator="new">
      <param name="class" value="org.ljm.dwr.service.UserService"/>
    </create>
    <convert converter="bean" match="org.ljm.dwr.service.User"/>
    <convert converter="bean" match="org.ljm.dwr.service.Group"/>
  </allow>

</dwr>

5. jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>通過dwr完成UCRD</title>
<script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.7.2.min.js"></script>
<!-- 必須引入dwr的引擎,此js文件由dwr框架提供 -->
<script type="text/javascript" src="<%=request.getContextPath() %>/dwr/engine.js"></script>
<!-- 引入java對象轉成的js ,DwrHello就是類的名字-->
<script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/UserService.js"></script>
<script type="text/javascript">
  $(function(){
      listUsers();
      function listUsers() {
          UserService.list(function(users){
             var tbody = $("#tb tbody").empty();
             $.each(users,function(i,user){
                 tbody.append("<tr><td>"+user.id+"</td><td>"+user.username+"</td><td>"+user.group.name+"</td></tr>");
             });
          });
      }
      $("#btn").on("click",function(){
         var userId = $("#userId").val();
         var username = $("#username").val();
         var gId = $("#gId").val();
         var gName = $("#gName").val();
         var user = {"id":userId,"username":username,"group":{"id":gId,"name":gName}};
         console.log(user);
         UserService.add(user);
         listUsers();
      });
  });
</script>
</head>
<body>
<table id="tb" style="width:700px;" align="center" border="1">
  <thead>
    <tr>
      <th>用戶標識</th>
      <th>用戶名</th>
      <th>用戶所在組</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>
<div id="addUser" style="text-align:center;margin-top:40px;">
用戶Id:<input id="userId" type="text"/>
用戶名:<input id="username" type="text"/>
組Id:<input id="gId" type="text"/>
組名:<input id="gName" type="text"/>
<input id="btn" type="button" value="添加"/>
</div>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章