天天看點

DWR & Spring - Configuration (1)

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.

繼續閱讀