DWR+Spring+Hibernate的整合

  这两天一直在看DWR,在做整合的时候出现了一些问题,困扰了我很久!我上网查了很多资料,但是收获不多,今天在别人的指导下搞定了,所以把我做的发出来大家共享,以后遇到了就很好做了。主要是搞清楚各个配置文件怎么写,特别是dwr.xml中的那些参数,我知道的都写上了,如果不完整大家可以留言。

  先说一下我这个demo的流程。在页面输入一个数据库表里的名字,然后在页面上显示与这个名字对应的数据库表中的年龄。下面的代码中我没有写dao层的代码,很简单大家自己写吧。

  1.下面是web.xml配置文件中的部分代码:

    
    
    
    

< 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 >

< servlet >
< servlet-name > dwr-invoker servlet-name >
< servlet-class > org.directwebremoting.servlet.DwrServlet servlet-class >
< init-param >

< param-name > debug param-name >
< param-value > true param-value >
init-param >

  该配置指定了DWR中的一个服务Servlet,开启debug模式,debug模式下URL在上下文后面加上/dwr/就可以访问DWR自动生成debug页面。

   
   
   
   
servlet >
< servlet-mapping >
 < servlet-name > dwr-invoker servlet-name >
 < url-pattern > /dwr/* url-pattern >
servlet-mapping >

  2.下面就要配置dwr.xml,新建一个xml文件,写入下面的代码

   
   
   
   
< dwr >
< allow >
< create javascript ="DWRUser" creator ="spring" >
< param name ="beanName" value ="DWRUser" />
create >
allow >
dwr >

 

  creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成“spring”,javascript="DWRUser"表示实例转换成javascript语言后以DWRUser命名,前台页面可以通过代码()来调用。param元素的name属性值可以是class,beanName等,此处用beanName,value得值是定义在applicationContext.xml中某个bean的id值。

  3.接下来是Spring的配置文件。下面是我用到的两个bean 的代码,其它的数据库链接和Hibernate配置就自己完成吧

    
    
    
    
< bean id ="dao" class ="wj.dao.HelloWorld" >
< property name ="sessionFactory" >
< ref bean ="sessionFactory" />
property >
bean >
< bean id ="DWRUser" class ="wj.service.HelloWorldSevice" >
< property name ="hello" >
< ref bean ="dao" />
property >
bean >

  4. 然后就是Service层的代码,这里的方法就是在页面中要调用的

 

    
    
    
    
package wj.service;
import wj.dao.HelloWorld;
public class HelloWorldSevice {
// dao层注入  
private HelloWorld hello;
public HelloWorld getHello(){
return hello;
}
public void setHello(HelloWorld hello){
this .hello = hello;
}
public String HelloService(String name){
return hello.sayHello(name); // 调用dao层的方法
}
}

 

  5. 页面代码

  在页面中首先写入以下代码,这些代码在DWR自动生成的debug页面中可以得到

 

    
    
    
    
< script type ='text/javascript' src ='/DWRSecond/dwr/interface/DWRUser.js' > script >
< script type ='text/javascript' src ='/DWRSecond/dwr/engine.js' > script >
< script type ='text/javascript' src ='/DWRSecond/dwr/util.js' > script >

以下是具体的调用

 

 

    
    
    
    
< script type = " text/javascript " >
function first()
{
DWRUser.HelloService($(
" name " ).value,callback);
}
function callback(data)
{
document.getElementById(
" msg1 " ).innerHTML = data;
}
< / script>

 

 

你可能感兴趣的:(DWR,Spring,Hibernate,java,Web)