一、下載dwr.jar文件,下載地址http://directwebremoting.org/dwr/downloads/index.html
我選的是3.0.2版本,如下:(Struts2+spring3.1+hibernate4.1)
下載完之後,把dwr.jar導入到WEB-INF/lib目錄下
二、搭建DWR框架
1、在web.xml添加如下內容:
<!-- 開始DWR配置 -->
<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>
<!-- 新加crossDomainSessionSecurity參數 -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 結束DWR配置 -->
2、在web.xml的同一路徑下新建dwr.xml文件,具體內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create javascript="UserDAOAjax" creator="spring" scope="application">
<param name="beanName" value="customerService"></param>
<include method="existUser"/>
</create>
</allow>
</dwr>
3、applicationContext.xml文件中注入customerService(紅色部分一致)
<!-- 普通裝修客戶 -->
<bean id="customerDAO" class="org.decorate.dao.CustomerDAO" parent="baseDAO"/>
<bean id="customerService" class="org.decorate.service.CustomerService">
<property name="customerDAO" ref="customerDAO" />
</bean>
<bean id="customerAction" class="org.decorate.action.CustomerAction" >
<property name="customerService" ref="customerService" />
</bean>
4、檢測dwr框架是否成功,在瀏覽器輸入:http://localhost:8080/Decorate/dwr/index.html
(Decorate是我的項目名稱),有如下圖顯示爲成功:
三、加入業務邏輯
1、在CustomerService加入existUser方法:
@Override
public boolean existUser(String customerId){
return customerDAO.existUser(customerId);
}
2、CustomerDAO類中建立與數據庫查詢的業務:
@Override
public boolean existUser(String customerId){
Session session = getSession();
Transaction transaction = session.beginTransaction();
Query query = session.createQuery("from Customer where customerId=?");
query.setParameter(0,customerId.trim());
List user=query.list();
transaction.commit();
if(user.size()>0)//有重名
return true;
else //無重名
return false;
}
四、JAP頁面加入:
<script type="text/javascript" src="../dwr/engine.js"></script>
<script type="text/javascript" src="../dwr/util.js"></script>
<script type="text/javascript" src="../dwr/interface/UserDAOAjax.js"></script>
<script type="text/javascript">
function show(boolean){
if(boolean){
alert("用戶已經存在!");
}
}
function validate(oCtl){
var name=oCtl.value;
if(name==""){
alert("用戶名不能爲空!");
return;
}
UserDAOAjax.existUser(name,show);
}
</script>
五、實驗結果