DWR基本使用

来源:互联网 发布:2013年网络流行歌曲 编辑:程序博客网 时间:2024/06/05 10:01

一、把DWR.jar包放到当前java工程里面

二、在web.xml文件中引入DWR的servlet。

    <servlet>
   <servlet-name>dwr-invoker</servlet-name>
   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
   <init-param>
    <description></description>
    <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>

三、客户端发送数据

<head>
  <base href="<%=basePath%>">

  <title>My JSP 'index.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
  <script type='text/javascript' src='dwr/interface/Hello.js'></script>
  <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
  <script type='text/javascript' src='hello.js'></script>
 </head>

 <body>
  选项:
  <select id="opts"></select>
  <br>
  <input id="user" type="text" />
  <input type='button' value='hello' onclick='hello();' />
  <div id="result"></div>
  <br>
  年份:
  <select id="years" onchange="refreshBikeList();"></select>
  <br />
  <br />
  型號:
  <select id="bikes"></select>
  <br />
 </body>

function hello() {
var o=$("years").value;
alert(o);
 var user = $("user").value;
 Hello.hello(user, callback);
}
function callback(msg) {
 DWRUtil.setValue("result", msg);
}
window.onload = function () {
 Hello.getOptions(populate);
 refreshYearList();
};
function populate(list) {
 DWRUtil.removeAllOptions("opts");
 DWRUtil.addOptions("opts", list);
}
function refreshYearList() {
 Hello.getYears(populateYearList);
}
function populateYearList(list) {
 DWRUtil.removeAllOptions("years");
 DWRUtil.addOptions("years", list);
 refreshBikeList();
}

四、服务器端处理


 private Map<String, String[]> bikes;

 public String hello(String name) {
  return name + "你好啊";
 }

 public String[] getOptions() {
  return new String[] { "良葛格", "毛美眉", "米小狗" };
 }

 public Hello() {
  bikes = new TreeMap<String, String[]>();
  bikes.put("2000", new String[] { "2000 T1", "2000 T2", "2000 T3" });
  bikes.put("2001", new String[] { "2001 A1", "2001 A2" });
  bikes.put("2002", new String[] { "2002 BW1", "2002 BW2", "2002 BW" });
  bikes.put("2003", new String[] { "2003 S320" });
  bikes.put("2004", new String[] { "2004 TA1", "2004 TA2", "2004 TA3" });
 }

// public String[] getYears() {
//  String[] keys = new String[bikes.size()];
//  int i = 0;
//  for (String key : bikes.keySet()) {
//   keys[i++] = key;
//  }
//  return keys;
// }
 public Map<String,String> getYears() {
//   List<String> arr=new ArrayList<String>();
//   arr.add("2002");
//   arr.add("2003");
//   arr.add("2004");
  Map<String,String> arr = new HashMap<String, String>();
  arr.put("1", "2009");
  arr.put("2", "2008");
  return arr;
 }
 public String[] getBikes(String year) {
  return bikes.get(year);
 }

五、加载dwr.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "
http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
 <allow>
  <create creator="new" javascript="Hello">
   <param name="class" value="testdwr.Hello" />
  </create>
  
 </allow>
</dwr>

 六、如果是在Spring里面继承使用dwr.xml配置有变化

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"
http://www.getahead.ltd.uk/dwr/dwr20.dtd">

<dwr>
 <allow>
   <create creator="spring" javascript="UserManager">
   <param name="beanName" value="UserManager" />   

<!--<param name="beanName" value="UserManager" />  value表示spring里面配置的bean的Id-->
  </create>
  
  <!--<create creator="new" javascript="Hello">
   <param name="class" value="dwr.manager.UserManager" />
  </create> --> 
 </allow>
</dwr>

原创粉丝点击