您的位置:知识库 » 编程语言

DWR+Spring+Hibernate的整合

作者: jonsion  来源: javaEye  发布时间: 2010-09-26 17:20  阅读: 2974 次  推荐: 0   原文链接   [收藏]  

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

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

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

<!--配置Spring-->
<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>
<!--配置DWR -->
<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命名,前台页面可以通过代码(<script type='text/javascript' src='../../dwr/interface/DWRUser.js'></script>)来调用。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>

 

 

0
0

编程语言热门文章

    编程语言最新文章

      最新新闻

        热门新闻