SSH集成DWR

来源:互联网 发布:php的优点和缺点 编辑:程序博客网 时间:2024/05/18 15:52

几经周折,SSH集成DWR终于成功了。

  struts2.0,spring2.5,hibernate3.0,dwr3.0.

  下面,贴下我的配置文件。

web.xml

 

 
Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"    
  3.     xmlns="http://java.sun.com/xml/ns/javaee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.   <welcome-file-list>  
  8.     <welcome-file>index.jsp</welcome-file>  
  9.   </welcome-file-list>  
  10.    <context-param>  
  11.        <param-name>contextConfigLocation</param-name>  
  12.        <param-value>classpath:applicationContext.xml</param-value>  
  13.     </context-param>  
  14.   <!-- 对Spring容器进行实例化 -->  
  15.     <listener>  
  16.           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  17.     </listener>  
  18.   <filter>  
  19.     <filter-name>struts2</filter-name>  
  20.      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  21.   </filter>  
  22.   <filter-mapping>  
  23.         <filter-name>struts2</filter-name>  
  24.         <url-pattern>/*</url-pattern>  
  25.    </filter-mapping>  
  26.     <servlet>  
  27.     <!-- 指定DWR核心Servlet的名字 -->  
  28.        <servlet-name>dwr-invoker</servlet-name>  
  29.        <servlet-class>  
  30.     <!-- 指定DWR核心Servlet的实现类 -->  
  31.     <!--    
  32.         org.directwebremoting.servlet.DwrServlet  
  33.      -->  
  34.         org.directwebremoting.spring.DwrSpringServlet      
  35.         
  36.        </servlet-class>  
  37.     <!-- 指定DWR核心Servlet处于调试状态 -->  
  38.        <init-param>  
  39.         <param-name>debug</param-name>  
  40.         <param-value>true</param-value>  
  41.        </init-param>  
  42.        <load-on-startup>1</load-on-startup>  
  43.     </servlet>  
  44.     <!-- 指定核心Servlet的URL映射 -->  
  45.     <servlet-mapping>  
  46.        <servlet-name>dwr-invoker</servlet-name>  
  47.        <url-pattern>/dwr/*</url-pattern>  
  48.     </servlet-mapping>  
  49. </web-app>  
 

dwr.xml

 

 

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">  
  3.   
  4. <dwr>  
  5.     <allow>  
  6.         <create creator="spring" javascript="login" >  
  7.                
  8.                
  9.             <param name="beanName" value="com.lc.action.OperatorAction" />  
  10.         </create>  
  11.            
  12.         <convert converter="bean" match="com.lc.domain.Operator" />  
  13.     </allow>  
  14.        
  15. </dwr>  
 

 注意:dwr.xml的  <create creator="spring" javascript="login" > 要与页面引入的js文件名一致,比如<script src="dwr/interface/login.js"></script>,切要与spring配置文件里的<dwr:remote>标签引入的js名一致,见如下的配置。

 

applicationcontext.xml

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.         xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
  7.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd   
  8.          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd   
  9.            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd   
  10.              http://www.directwebremoting.org/schema/spring-dwr   
  11.             http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">  
  12.   
  13.     <context:annotation-config />  
  14.      <!-- DWR 配置开始 -->      
  15.        
  16.    <dwr:configuration></dwr:configuration><!-- 必须要configuration -->        
  17.     <dwr:controller id="dwrController" debug="true" />        
  18.    <!-- DWR 配置结束 -->             
  19.        
  20.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  21.         destroy-method="close">  
  22.         <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />  
  23.         <property name="url"  
  24.             value="jdbc:oracle:thin:@172.16.40.132:1521:localorc" />  
  25.         <property name="username" value="hr" />  
  26.         <property name="password" value="hr" />  
  27.          <!-- 连接池启动时的初始值 -->  
  28.         <property name="initialSize" value="1" />  
  29.          <!-- 连接池的最大值 -->  
  30.         <property name="maxActive" value="500" />  
  31.          <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->  
  32.         <property name="maxIdle" value="2" />  
  33.          <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->  
  34.         <property name="minIdle" value="1" />  
  35.     </bean>  
  36.     <bean id="sessionFactory"  
  37.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  38.         <property name="dataSource" ref="dataSource" />  
  39.         <property name="mappingResources">  
  40.             <list>  
  41.                 <value>com/lc/domain/operator.hbm.xml</value>  
  42.             </list>  
  43.         </property>  
  44.         <property name="hibernateProperties">  
  45.             <value>  
  46.                 hibernate.dialect=org.hibernate.dialect.Oracle9Dialect   
  47.                 hibernate.hbm2ddl.auto=update  
  48.                 hibernate.show_sql=false  
  49.                 hibernate.format_sql=false  
  50.                 hibernate.cache.use_second_level_cache=true  
  51.                 hibernate.cache.use_query_cache=false  
  52.                 hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider   
  53.               </value>  
  54.         </property>  
  55.     </bean>  
  56.     <bean id="txManager"  
  57.         class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  58.         <property name="sessionFactory" ref="sessionFactory" />  
  59.     </bean>  
  60.     <tx:annotation-driven transaction-manager="txManager" />  
  61.     <bean id="opeDaoImp" class="com.lc.dao.imp.OperatorDaoImp">  
  62.         <property name="sessionFactory">  
  63.             <ref bean="sessionFactory"/>  
  64.         </property>  
  65.     </bean>  
  66.     <bean id="loginAction" class="com.lc.action.OperatorAction">  
  67.         <property name="opeDao">  
  68.             <ref bean="opeDaoImp"/>  
  69.         </property>     
  70.         <dwr:remote javascript="login"></dwr:remote>    
  71.     </bean>  
  72.        
  73. </beans>  
 

  

在需要用到dwr的页面引入下面三个JS

 

<script src="dwr/engine.js"></script>
 <script src="dwr/util.js"></script>
 <script src="dwr/interface/login.js"></script>

 

JSP页面

Xml代码 复制代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%   
  3. String path = request.getContextPath();   
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.        
  12.     <title>My JSP 'index.jsp' starting page</title>  
  13.     <meta http-equiv="pragma" content="no-cache">  
  14.     <meta http-equiv="cache-control" content="no-cache">  
  15.     <meta http-equiv="expires" content="0">       
  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  17.     <meta http-equiv="description" content="This is my page">  
  18.     <script src="dwr/engine.js"></script>  
  19.     <script src="dwr/util.js"></script>  
  20.     <script src="dwr/interface/login.js"></script>  
  21.   </head>  
  22.   <script type="text/javascript">  
  23.     function check() {   
  24.         var id = document.getElementById("ope.user_id").value;   
  25.         var password = document.getElementById("ope.user_pass").value;   
  26.            
  27.         login.find(id,checkFun);   
  28.     }   
  29.     function checkFun(data) {   
  30.         if(data)   
  31.             alert("ok");   
  32.         else   
  33.             alert("failed");    
  34.     }   
  35.      
  36.   </script>  
  37.   <body>  
  38.        
  39.     <form action="login.action" method="post">  
  40.         <input type="text" name="ope.user_id" id="ope.user_id" ><br>  
  41.         <input type="password" name="ope.user_pass" onblur="check()"><br/>  
  42.         <input type="submit" value="提交">  
  43.     </form>  
  44.   </body>  
  45. </html>  
原创粉丝点击