1、 DWR(direct web remoting)是一個Java庫,能夠在伺服器上的Java和JavaScript在浏覽器中進行互動。DWR 2.0版本是目前的穩定版本.
RPC-Style AJAX
Easy AJAX for Java
Easy to integrate
AJAX:
–Expose Java to the Browser
Reverse AJAX:
–Expose JavaScript to the Server
2、web.xml
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
2、dwr.xml
<dwr>
<allow>
<convert match="org.mcp.ep.entity.EP" converter="bean"/>
<create creator="spring" javascript="DwrManager">
<param name="beanName" value="DwrManager"/>
</create>
</allow>
</dwr>
說明:
<allow>....</allow> 為<!-- without allow, DWR isn't allowed to do anything --> 不被允許不做任何事情
<convert..../>為 轉換器確定所有參數可轉換
3、applicationContext.xml
<bean id="DwrManager" class="org.mcp.ep.logic.DwrManager">
<property name="sessionFactory" ><ref local="sessionFactory" /></property>
</bean>
4、java file: DqrManager
public boolean validateEp(final String orgNo) {
return ((Long)getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
return session.createQuery("select count(*) from EP t where t.orgNo=?")
.setParameter(0, orgNo)
.uniqueResult();
}})).intValue() == 1;
}
說明:實作對組織編号唯一性做驗證
5、jsp file
<script type='text/javascript' src='<%=contextPath %>/dwr/interface/DwrManager.js'></script>
<script type='text/javascript' src='<%=contextPath %>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=contextPath %>/dwr/util.js'></script>
<script type="text/javascript">
function checkEpOrgNo() {
var orgno = document.all.orgNo.value;
DwrManager.validateEp(orgno, callback);
}
function callback(msg) {
if(msg==true){
alert("此案登記号:" + document.all.orgNo.value + " \n已經有人使用。");
}else{
alert("此備案登記号:" + document.all.orgNo.value + " \n可以使用。");
}
}
</script>
說明:
engine.js 、util.js都是dwr公用的script
DwrManager.js 是伺服器端注冊的對象 script.