dwr和spring集成
通过JS自动调用Java程序。
过程比较简单,做个记录备忘。
1.环境
a) DWR 2.0.1
b) Spring 2.5
2.配置
主要的配置有两个,一是在web.xml的定义,配置dwr的servlet;另一个是dwr.xml的配置,包含了远程调用的java方法。
代码 <!-- DWR Configuration -->
<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>
<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>
代码<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="CodeListManager">
<param name="beanName" value="codeListManager"/>
<include method="getCodeListById"/>
<include method="getCodeListByCode"/>
</create>
<convert converter="bean" match="com.mpc.common.domain.CodeList"/>
</allow>
</dwr>
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="CodeListManager">
<param name="beanName" value="codeListManager"/>
<include method="getCodeListById"/>
<include method="getCodeListByCode"/>
</create>
<convert converter="bean" match="com.mpc.common.domain.CodeList"/>
</allow>
</dwr>
上段代码中, creator="spring"表示调用的Spring中的bean,<param name="beanName" value="codeListManager"/>表示调用了Spring中beanId为codeListManager的对象。
3.编写页面
首先要引用js
代码<script type="text/javascript" src="<c:url value='/dwr/interface/CodeListManager.js'/>"></script>
<script type="text/javascript" src="<c:url value='/dwr/engine.js'/>"></script>
<script type="text/javascript" src="<c:url value='/dwr/util.js'/>"></script>
<script type="text/javascript" src="<c:url value='/dwr/engine.js'/>"></script>
<script type="text/javascript" src="<c:url value='/dwr/util.js'/>"></script>
其中CodeListManager.js就是配置在dwr.xml文件中,对应的 javascript="CodeListManager",该JS是有dwr自动生成的,你可以通过URL直接把该js下载下来
接着编写具体的实现方式
代码<script type="text/javascript">
var myCall = function callBack(data){
alert(data.name);
}
function getCodeList(){
CodeListManager.getCodeListByCode("CITY", "01", myCall);
}
</script>
var myCall = function callBack(data){
alert(data.name);
}
function getCodeList(){
CodeListManager.getCodeListByCode("CITY", "01", myCall);
}
</script>
CodeListManager.getCodeListByCode("CITY", "01", myCall);是我具体要操作的业务逻辑类的方法,该方法包含了两个参数,最后一个参数是回调的参数。具体的返回值在回调函数中获取。
至此,我们就可以通过js代码直接调用java的方法了。
great!

浙公网安备 33010602011771号