DWR學習(一)

          Ajax也算是久聞了,但總要你自己一遍一遍的Ajax.Request方法,瀏覽器的不同還得修改不通的方法,讓人頭痛!目前公司做的系統中包含了DWR,之前也接觸過DWR,瞭解但不熟悉,現在將以前自己寫的一個小例子拿出來曬曬。從下一篇文章開始,從頭到尾學習下!

 1.首先是配置文件,web.xml添加如下代碼:(這都是死的)

 <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>
    <load-on-startup>1</load-on-startup>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
2.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>

  <init>
  </init>

  <allow>
    <convert converter="bean" match="com.demo.DVO">  
          <param name="include" value="id,name"/>
    </convert>
    <!--  將 Java 類Demo 映射爲 JavaScript 裏面的對象 Demo -->
    <create creator="new" javascript="Demo" scope="application">
     <param name="class" value="com.demo.Demo"/>
     <include method="sayHello"/>
     <include method="mytest"/>
     <include method="mytest1"/>
     <include method="mytest2"/>
    </create>
 </allow>

</dwr>



3.Demo類:

 
package com.demo;

import java.util.ArrayList;
import java.util.List;

public class Demo {
	public String sayHello(String name){
		return "Hello-->>"+name;
	}
	public List mytest(String id,String name){
		System.out.println("mytest:"+id+"||"+name);
		
		List list=new ArrayList();
		
		DVO vo1=new DVO();
		vo1.setId("1");
		vo1.setName("xiaobo");
		list.add(vo1);
		
		DVO vo2=new DVO();
		vo2.setId("2");
		vo2.setName("mll");
		list.add(vo2);
		
		return list;
		
	}
	
	public DVO mytest1(String id,String name){
		System.out.println("mytest1:"+id+"||"+name);
		DVO vo = new DVO();
		vo.setId("3");
		vo.setName("test");
		return vo;
		
	}
	public void mytest2(DVO vo){
		System.out.println("^^^^^^^"+vo.getId()+vo.getName());
	}
}
4.DVO類:
 
package com.demo;

public class DVO {
	
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public DVO() {
	}
	
}
5.index.jsp頁面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>dwrTest</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">
 
  <!--  DWR JavaScript 類庫 -->
 <script type='text/javascript' src='/mydwr/dwr/interface/Demo.js'></script>
   <script type='text/javascript' src='/mydwr/dwr/engine.js'></script>
   <script type='text/javascript' src='/mydwr/dwr/util.js'></script>
   
   <script type="text/javascript">
   function updateName(){
   var text=$("text").value;
   var id=dwr.util.getValue("id");
   var name=dwr.util.getValue("name");
//   Demo.sayHello(text,callBack);//回調函數寫在外部,下邊是寫在內部的
   Demo.sayHello(text,function (data){dwr.util.setValue("showHello",data,{escapeHtml:true});});
   
   //關於返回list取值,(javabean:DVO.java從data中得到)
   Demo.mytest("1","xiaob0",function(data){
   for(var i=0;i<data.length;i++){
  $(list1).add(new Option(data[i].id,data[i].id));//將list中的值放到jsp的list2中
  $(list2).add(new Option(data[i].name,data[i].name));//將list中的值放到jsp的list2中
   }
   });
}
function callBack(data){
 dwr.util.setValue("showHello",data,{escapeHtml:false});
}
   </script>
  </head>
 
  <body>
 請輸入姓名:
 <br>返回值_:<input id="text" type="text" value=""/>
 <br>對象__id:<input id="id" type="text" value=""/>
 <br>對象name:<input id="name" type="text" value=""/>
 <br><input type="button" value="submit" οnclick="updateName()"/>
 <br><div id="showHello"></div>
 <br><div id="showVo"></div>
 <select name="list1"></select>
 <select name="list2"></select>
  </body>
</html>
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章