您的位置:首页 > 编程语言 > Java开发

使用MyEclipse集成SSH和DWR(三)整合Spring和DWR

2008-09-30 03:06 639 查看
开发环境:

JDK 1.5

Tomcat 6.0

Spring 2.5

Struts 1.3

Hibernate 3.2

DWR 2.0

MyEclipse 6.5

SQL Server 2005

本系列文章PDF格式及示例源代码请到[/b]此处下载

Spring与DWR整合的价值在于DWR使用的BO全部交给Spring管理,从而充分利用Spring强大的IoC和AOP特性。

1. 添加dwr.jar到WEB-INF/lib下,并在web.xml中添加对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>

</servlet>

<servlet-mapping>

<servlet-name>dwr-invoker</servlet-name>

<url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

2. 在DWR中加载Spring配置文件,有三种方式:

   1) 【最佳方案】使用org.springframework.web.context.ContextLoaderListener,在WEB-INF/web.xml 中做如下配置:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/classes/applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

   2) 在dwr.xml中指定使用哪些bean,你可以使用location*参数。你可以指定任意多个文件,只要参数以location开始并且唯一即可。例 如:location-1, location-2。这些location被用做Spring的ClassPathXmlApplicationContext的参数:

<create creator="spring" javascript="Fred">

<param name="beanName" value="userBO" />

<param name="location" value="beans.xml"/>

</create>

   注意:其中beans.xml默认是读/WEB-INF/classes里的
   3) 使用DWR API里的SpringCreator类中的setOverrideBeanFactory方法来定义beans.xml的位置 

3. 在WEB-INF下添加dwr.xml配置文件,用来配置所需要暴露在前端页面的业务逻辑类。

<allow>

<convert converter="bean" match="cn.qdqn.ssh.bo.UserBO" />

<create creator="spring" javascript="userBO">

<param name="beanName" value="userBO" />

</create>

</allow>

4. 在前端页面中使用DWR

<script type='text/javascript' src='/SSH/dwr/engine.js'></script>

<script type='text/javascript' src='/SSH/dwr/util.js'></script>

<script type='text/javascript' src='/SSH/dwr/interface/userBO.js'></script>

<script type="text/javascript" language="javascript">

function checkUserName(){

var userName=document.getElementsByName("name")[0].value;

userBO.isNotExists(userName,callback);

function callback(isNotExist){

if(isNotExist){

alert("可以使用");

}else{

alert("该用户已经被注册!");

}

}

}

</script>

…………

<html:button property="check" value="Check"onclick="checkUserName()"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐