六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

DWR简单应用实例

[复制链接]

升级  16.67%

72

主题

72

主题

72

主题

举人

Rank: 3Rank: 3

积分
250
 楼主| 发表于 2013-1-23 02:26:56 | 显示全部楼层 |阅读模式
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 >
   <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>
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表