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.