注意:  dwr 是3.x 的版本  spring 2.5在线等, 完事后给分。。

解决方案 »

  1.   

    dwr配置文件<?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>    <!-- test -->
        <create creator="new" javascript="test">
          <param name="class" value="com.accp.y2.biz.Test"/>
          <include method="test" />
        </create>
        <!-- IGoods -->
        <create creator="spring" javascript="IGoods">
          <param name="beanName" value="IGoods"/>
          <include method="findAllGoods" />
          <include method="addGoods" />
          <include method="getSetBid" />  
        </create>
        <!-- IUserinfo -->
        <create creator="spring" javascript="IUserInfo">
          <param name="beanName" value="IUserInfo"/>
          <include method="login" />
          <include method="dwrlogin" />
      <include method="querySetGoods" />
        </create>
        <!-- IBid -->
        <create creator="spring" javascript="IBid">
          <param name="beanName" value="IBid"/>
          <include method="addBid" />
          <include method="updateBidAndGoods" /> 
      <include method="getMaxPriceGoods" />
        </create>    <!-- this is a bad idea for live, but can be useful in testing 
        <convert converter="exception" match="java.lang.Exception"/>
        <convert converter="bean" match="java.lang.StackTraceElement"/> -->
    <convert converter="bean" match="com.accp.y2.persist.Goods"/>
    <convert converter="bean" match="com.accp.y2.persist.Userinfo"/>
    <convert converter="bean" match="com.accp.y2.persist.Bid"/>
      </allow></dwr>
      

  2.   

    application代码<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
    </property>
    <property name="url" value="jdbc:mysql://localhost:3306/epai"></property>
    <property name="username" value="root"></property>
    <property name="password" value="accp"></property>
    </bean>
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
    </prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/accp/y2/persist/Userinfo.hbm.xml</value>
    <value>com/accp/y2/persist/Bid.hbm.xml</value>
    <value>com/accp/y2/persist/Goods.hbm.xml</value></list>
    </property>
    </bean>

    <!-- 1.事务管理器对象   -->
    <bean id="myHibTxManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory"
     ref="sessionFactory" />
    </bean>
    <!-- 2.事务通知的对象  .管理什么方法  -->
    <tx:advice id="txAdvice" transaction-manager="myHibTxManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED" />
    <tx:method name="insert*" propagation="REQUIRED" />
    <tx:method name="del*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="do*" propagation="REQUIRED" />
    <tx:method name="*" propagation="SUPPORTS"  read-only="true" />
    </tx:attributes>
    </tx:advice>

    <!--3.aop代理:定义了session包下的所有类方法都要用于事务拦截,由txAdvice来处理 B -->
    <aop:config>
    <!-- 会话业务方法的类包  包名.类名.方法名-->
    <aop:pointcut id="bizConfig"
    expression="execution(* com.accp.y2.biz.*.*(..))" /><!-- 项目中biz包中的所有接口和类方法都要拦截 -->
    <!-- 织入通知: 用A来管理B -->
    <aop:advisor advice-ref="txAdvice" pointcut-ref="bizConfig" />
    </aop:config>





    <!-- DAO -->
    <bean id="UserinfoDAO" class="com.accp.y2.persist.UserinfoDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <bean id="BidDAO" class="com.accp.y2.persist.BidDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <bean id="GoodsDAO" class="com.accp.y2.persist.GoodsDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <!-- biz -->
    <bean id="IUserInfo" class="com.accp.y2.biz.UserInfoImpl">
    <property name="userinfoDAO" ref="UserinfoDAO" />
    </bean>
    <bean id="IGoods" class="com.accp.y2.biz.GoodsImpl">
    <property name="goodsDAO" ref="GoodsDAO" />
    </bean>
    <bean id="IBid" class="com.accp.y2.biz.BidImpl">
    <property name="bidDAO" ref="BidDAO" />
    <property name="userinfoDAO" ref="UserinfoDAO" />
    <property name="goodsDAO" ref="GoodsDAO" />
    </bean>
    <!-- web -->
    <bean name="/user" class="com.accp.y2.web.action.UserAction">
    <property name="iuserinfo" ref="IUserInfo" />
    </bean>
    <bean name="/goods" class="com.accp.y2.web.action.GoodsAction">
    <property name="igoods" ref="IGoods" />
    <property name="iuserinfo" ref="IUserInfo" />
    </bean>
    </beans>
      

  3.   

    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      
      <!-- dwr -->
      <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>    <!-- This should NEVER be present in live -->
        <init-param>
          <param-name>debug</param-name>
          <param-value>true</param-value>
        </init-param>
        
        <init-param>
          <param-name>classes</param-name>
          <param-value>java.lang.Object</param-value>
        </init-param>
      </servlet>  <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
      </servlet-mapping>
      
      
      <welcome-file-list>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
     <!--编码过滤器-->
      <filter>
        <filter-name>EncodeFilter</filter-name>
        <filter-class>com.accp.y2.web.action.EncodeFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>EncodeFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    <!-- 类型转换器 -->
      <servlet>
       <servlet-name>UtilDateConverterInitWithServlet</servlet-name>
       <servlet-class>com.accp.y2.web.action.UtilDateConverterInitWithServlet</servlet-class>
       <load-on-startup>3</load-on-startup>
      </servlet>
    <!-- 认识上下文环境 -->
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
        classpath:applicationContext.xml
      </param-value>
    </context-param>
     <!-- 上下文监听器:是否初始化 -->
      <listener>
        <listener-class>
       org.springframework.web.context.ContextLoaderListener
       </listener-class>
      </listener>
    </web-app>
      

  4.   

    回复  maple0508 先谢谢这位哥们, 不过我要的是 dwr3.x 的啊 你这是2.x 、  3.x跟2.x的配置一样吗??????
      

  5.   

    http://download.csdn.net/source/1282115/还是以前用过一段时间的dwr2.0/没接触dwr3.0的,不好意思
      

  6.   

    一样的  你先试试  dwr3.0太新了
      

  7.   

    http://download.csdn.net/source/1282115/还是以前用过一段时间的dwr2.0/没接触 dwr3.0的,不好意思
      

  8.   

    web.xml<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>
    org.directwebremoting.spring.DwrSpringServlet
    </servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet> <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
      

  9.   

    dwr配制ajaxContext.xml<?xml version="1.0" encoding="UTF-8"?>
    <beans
      xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">
      
       <dwr:configuration>
       <dwr:convert class="com.aaaa.bbbbb.CodeLjd" type="bean"/>
      

    </dwr:configuration>

    <bean id="ajaxRoleAction" class="com.cccc.ddddd.TbRoleAction">
      <dwr:remote javascript="ajaxRoleAction"/>
    </bean>
    </beans>
    加载web.xml<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:ajaxContext.xml

    </param-value>
    </context-param>
      

  10.   

    页面调用<script type='text/javascript' src='<%=basePath%>dwr/interface/ajaxRoleAction.js'></script>
    <script type='text/javascript' src='<%=basePath%>dwr/util.js'></script>function codelist(tableName){
     var sel=document.getElementById(tableName);
     if(sel.length<=1){
      DWREngine.setAsync(false);
      ajaxRoleAction.codeList(name,  //codeList RoleAction中方法
      function (list){ //反回 LIST集合
      for(var i=0;i<list.length;i++){
      sel.options.length = sel.options.length+1;
      var option = new Option(list[i].name,list[i].code,false,true); //name,code ajaxContext.xml 配制bean类的属性
      sel.options[sel.options.length-1]= option;
      }
      }
      );
      DWREngine.setAsync(true);
      }
     } 
      

  11.   

    问题解决了  谢谢 jianglang_a 以及其他各位