|
|
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>
|
|