开发者社区> 问答> 正文

dwr框架结合Spring框架不能调用DAO方法

想用dwr框架做一个不刷新页面,验证用户名存不存在的方法,但是页面始终无法实现方法,后台不报错,只是在JSP页面上弹出ERROR错误。 后台已经测试,可以正确进入对应方法CheckData,并且email也传入进去了,但就是不能调用userBiz方法。 怀疑跟Spring框架结合有错误,两次查询了Spring配置,都是正确的,请问何解? 下面贴jsp相关代码: Java代码 收藏代码

/*邮箱名是否注册检查*/  
function checkResult1(){  
    var result=null;  
    var email = document.getElementById('email').value;  
    if(email <= 5){  
        result='<span class="STYLE7">用户名必须大于5个字符</span>';  
        document.getElementById('result1').innerHTML=result;  
    }else if(email > 50){  
        result='<span class="STYLE7">用户名必须小于50个字符</span>';  
        document.getElementById('result1').innerHTML=result;  
    }else{  
        CheckOccupied.checkEmailOccupied(email,msg1);  
    }  
}  
  
function msg1(data){  
    var result = null;  
    if(data == "yes"){  
        result='<img src="../images/check_right.gif" alt="">';  
    }else if(data == "no"){  
        result='<span class="STYLE7">该用户名已注册,请更换用户名或<a href="#">登录</a></span>';  
    }else{  
        result='数据错误';  
    }  
    document.getElementById('result1').innerHTML=result;  
}

spring框架相关代码: Java代码 收藏代码

<!-- 声明事务管理器 -->  
    <bean id="myHibTransactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory"></property>  
    </bean>  
  
    <!-- 基于@Transactional注解方式的事务管理 -->  
    <tx:annotation-driven transaction-manager="myHibTransactionManager" />  
  
  
    <!-- 定义事务通知 -->  
    <tx:advice id="txAdvice" transaction-manager="myHibTransactionManager">  
        <!-- 指定事务传播规则 -->  
        <tx:attributes>  
            <!-- 对get打头的方法应用SUPPORTS事务规则 -->  
            <tx:method name="get*" propagation="SUPPORTS" />  
            <!-- 对其他方法应用REQUIRED事务规则 -->  
            <tx:method name="*" propagation="REQUIRED"></tx:method>  
        </tx:attributes>  
    </tx:advice>  
      
  
    <!-- 定义切面,并将事务通知和切面组合(定义哪些方法应用事务规则) -->  
    <aop:config>  
        <!-- 对com.tyyf.biz包下的所有类的所有方法都应用事务规则 -->  
        <aop:pointcut id="bizMethods" expression="execution(* com.tyyf.biz.*.*(..))" />  
        <!-- 将事务通知和切面组合 -->  
        <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" />  
    </aop:config>  
<bean id="checkData" class="com.tyyf.dwr.CheckData" scope="prototype">  
        <property name="userBiz" ref="userBiz" />  
    </bean>

java代码: Java代码 收藏代码

User user = new User();  
    // 使用UserBiz接声明属性userBiz,并添加set方法,用于依赖注入  
    UserBiz userBiz;  
  
    public void setUserBiz(UserBiz userBiz) {  
        this.userBiz = userBiz;  
    }  
  
    public String checkEmailOccupied(String email) {  
        user.setEmail(email);  
        if (userBiz.getUser(user) != null) {  
            return "no";  
        } else {  
            return "yes";  
        }  
    }

dwr配置代码: Java代码 收藏代码

<dwr>  
    <allow>  
        <create creator="new" javascript="CheckOccupied">  
            <param name="class" value="com.tyyf.dwr.CheckData" />  
        </create>  
    </allow>  
</dwr>

展开
收起
长安归故里. 2020-01-07 21:01:59 1108 0
1 条回答
写回答
取消 提交回答
  • 既然你是使用dwr结合spring,那你的dwr.xml怎么不用spring

    Java代码 收藏代码

    <create creator="spring" javascript="CheckOccupied">  
                <param name="beanName" value="checkData"/>  
      
    <include method="checkEmailOccupied"/>          
          
              
    lt;/create>
    
    

    另外在applicationcontext.xml定义bean

    2020-01-07 21:02:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载