1,首先加入Hibernate,Spring,Dwr的Jar包
2,在Web.xml中加入Dwr,Spring监听代码
<!-- dwr -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<!--注意这里 org.directwebremoting.spring.DwrSpringServlet ,不能用这个,这个好像是单独用的时候调用的东西,但是整合的时候应该用这个东西。-->
<init-param>
<param-name>debug</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>
<!-- spring -->
<filter>
<filter-name>hibernate-listener</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernate-listener</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2,有一个表User在Spring application.xml 中的配置
<bean id="UserDAO" class="com.lch.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- impl -->
<bean id="uimpl" class="com.lch.impl.UserImpl">
<property name="dao" ref="UserDAO"></property>
</bean>
3,在dwr.xml中的配置信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="spring" javascript="method">
<param name="beanName" value="uimpl"/>
<include method="findAll"/>
</create>
<convert converter="bean" match="com.lch.dao.User"/>
</allow>
</dwr>
//注意:creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成 “spring”,javascript="uimpl" 表示实例转换成javascript语言后以uimpl命名,前台页面可以通过代码(<script src="../../dwr/interface/method.js" type="text/javascript"></script>)来调用。param元素的name属性值可以是 class,beanName等,此处用beanName,value得值是定义在applicationContext.xml中某个bean的id 值。
5,最后建一个JSP页面:
<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/interface/method.js'></script>
<script type="text/javascript">
function printdata(){
method.findAll(callback); // findAll 上DAO里面的方法
}
function callback(data){
var userlist=[
function(data){return data.uid;},
function(data){return data.uname;},
function(data){return data.password;}
];
DWRUtil.addRows("tab", data, userlist);//tab为tbody的id,而不能为table的id
}
</script>
<body>
123<br>
<input type="button" value="test" onClick="printdata()">
<table border="1">
<tbody id="tab">
<tr>
<td>id</td><td>uanme</td><td>pwd</td>
</tr>
</tbody>
</table>
</body>