论坛首页 入门技术论坛

DWR简单应用实例

浏览 1478 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-15   最后修改:2009-10-15

1。在使用DWR之前要去下载一个dwr.jar包(http://directwebremoting.org/dwr/download.html)加入到你的程序当中去。

2。在web.xml加班DWR配置如下:

<servlet>
		<servlet-name>dwr</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>dwr</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

 

3。完成我们的Ajax调用的方法如:

public class UserDAO {
	EntityManagerFactory factory = null;

	EntityManager manager = null;

	public void persist(User user) {
		factory = Persistence.createEntityManagerFactory("mengya");
		manager = factory.createEntityManager();
		manager.getTransaction().begin();
		manager.persist(user);
		manager.getTransaction().commit();
		manager.close();
		factory.close();
	}

	public boolean exitUserName(String name) {
		boolean flag = false;
		factory = Persistence.createEntityManagerFactory("mengya");
		manager = factory.createEntityManager();
		Query query = manager.createQuery("select u from User u where u.username=:username");
		query.setParameter("username", name);
		List<User> userList = query.getResultList();
		if (userList.size() != 0) {
			flag = true;
		}
		manager.close();
		factory.close();
		return flag;
	}
}

    

   专门写一个包里面存放我们Ajax调用的方法如下:

 

package com.mengya.AjaxDAO;

import com.mengya.dao.UserDAO;

public class UserAjaxDAO {
	
	private UserDAO userDao=new UserDAO();
	
	public boolean exitUserName(String name){
		return userDao.exitUserName(name);
	}
	
}

 

4。配置我们的DWR里的dwr.xml(注意该文件要与web.xml同一个目录下面)如下:

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
	<!-- allow部分定义了DWR能够创建和转换的类 -->
	<allow>
		<!-- 
			每一个在类中被调用的方法需要一个<create …>有若干类型的creator,使用“new”关键字或者Spring 框架等。
		 -->
		 <!-- 
		 	javascript 属性
		 	在浏览器里给你创建的对象命名。避免使用JavaScript 保留字。这个名字将在页面里作为js被导入
		  -->
		<create javascript="UserAjaxDAO" creator="new">
			<param name="class"
				value="com.mengya.AjaxDAO.UserAjaxDAO">
			</param>
		</create>
		<convert match="com.mengya.bean.User" converter="bean"></convert>
	</allow>
</dwr>

 

5。在页面上完成对Ajax的使用如下:

<html>
  <head>
    <!-- 前页两个js由dwr完成 -->
 <script type="text/javascript" src="dwr/engine.js"></script>
    <script type="text/javascript" src="dwr/util.js"></script>
    <!-- 这个js文件由dwr自己完帮我们生成 -->
    <script type="text/javascript" src="dwr/interface/UserAjaxDAO.js"></script>
    <title>用户注册</title>
    <script type="text/javascript">
     function show(boolean){
      if(boolean){
       ${"error"}.style.visibility="visible";
       form1.username.value="";
      }else{
       ${"error"}.style.visibility="hidden";
      }
     }
     function validate(){
      var name=form1.username.value;

      //show表示该Ajax回调方法
      UserAjaxDAO.exitUserName(name,show);
     }
     function init(){
      ${"error"}.style.visibility="hidden";
     }
    </script>
  </head>
 
  <body onload="init()">
   <form action="#" name="form1">
    <table id="table1" border="0">
     <tr>
      <td>用户名:</td>
      <td>
       <input type="text" name="username" onchange="validate()">
      </td>
      <td id="error">
       <font color="red">用户名已存在!</font>
      </td>
     </tr>
     <tr>
      <td>密码:</td>
      <td>
       <input type="password" name="password">
      </td>
     </tr>
    </table>
   </form>
  </body>
</html>

 

 

 

  • DWR_Ajax.rar (5.9 MB)
  • 描述: 我的DWR入门例子
  • 下载次数: 112
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics