整合Spring+SpringMVC+Hibernate时,无法进入控制层

整合Spring+SpringMVC+Hibernate时,启动正常,可以打开登录页面,但是进行登录时,无法进入controller层,而且不报错,只输出三行日志。
DispatcherServlet with name 'springMVC' processing POST request for [/SSH/user/login.do]
No mapping found for HTTP request with URI [/SSH/user/login.do] in DispatcherServlet with name 'springMVC'
Successfully completed request

意思大概是找不到路径,但应该不是路径的问题,如果路径有问题,页面上message会显示有问题的路径,而不是什么都没有。

HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.82

spring-context.xml配置是这样的

<context:component-scan base-package="service,dao,entity,controller"/>


<!-- 配置数据源 -->
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  >     
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
    <property name="url" value="jdbc:sqlserver://localhost:1433;database=user_role" />
    <property name="username" value="sa"/>
    <property name="password" value="123456"/>        
</bean> 

<!-- 配置SessionFactory -->  
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
    <property name="dataSource" ref="dataSource" />  
    <property name="hibernateProperties">  
        <props>  
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>  <!--指定数据库方言-->
            <prop key="hibernate.hbm2ddl.auto">update</prop>    <!--hibernate根据实体自动生成数据库表-->
            <prop key="hibernate.show_sql">true</prop>        <!--在控制台显示执行的数据库操作语句-->
            <prop key="hibernate.format_sql">true</prop>       <!--在控制台显示执行的数据库操作语句(格式)-->
        </props>  
    </property>  
    <property name="annotatedClasses">  
        <list>  
            <value>entity</value>  
        </list>  
    </property>  
</bean>  

<!--  <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
     <property name="sessionFactory" ref="sessionFactory"></property>  
</bean>   

<bean id="userDao" class ="dao.UserDao">  
    <property name="sessionFactory" ref="sessionFactory" />  
    <property name="hibernateTemplate" ref="hibernateTemplate" />  
</bean>   -->

<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 事物管理器配置  -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>


<!-- 配置事务,使用代理的方式 -->  
<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">    
    <property name="transactionManager" ref="transactionManager"></property>    
    <property name="transactionAttributes">    
        <props>    
            <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>    
            <prop key="modify*">PROPAGATION_REQUIRED,-myException</prop>    
            <prop key="del*">PROPAGATION_REQUIRED</prop>    
            <prop key="*">PROPAGATION_REQUIRED</prop>    
        </props>    
    </property>    
</bean>   

    spring-mvc.xml配置
    <!-- 开启注解 -->  
<mvc:annotation-driven />                       
<!-- 注解扫描包 -->  
<context:component-scan base-package="controller" />  

<!-- 静态资源(js/image)的访问 -->  
<mvc:resources location="/js/" mapping="/js/**"/>  

<!-- 定义视图解析器 -->    
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/jsp/"></property>  
    <property name="suffix" value=".jsp"></property>  
</bean>  

    web配置
    <display-name>SSH</display-name>


login.jsp

<!-- 加载所有的配置文件 -->



contextConfigLocation

classpath*:config/spring-context.xml

<!-- 配置Spring监听 -->

org.springframework.web.context.ContextLoaderListener

<!-- 防止Spring内存溢出监听器 -->

org.springframework.web.util.IntrospectorCleanupListener

<!-- 配置SpringMVC -->



springMVC

org.springframework.web.servlet.DispatcherServlet



contextConfigLocation

classpath*:config/spring-mvc.xml



1





springMVC

/

<!-- 配置字符集 -->



encodingFilter

org.springframework.web.filter.CharacterEncodingFilter



encoding

UTF-8





forceEncoding

true







encodingFilter

/*

<!-- 如果OpenSession加了*号,启动时会报错,找不到名为sessionFactory的bean -->
<!-- 配置Session -->



openSession

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter


sessionFactoryBeanName
sessionFactory

</init-param> 





openSession

/

3个回答

ssh不是struts2,Spring,hibernate吗?

但是公司要用springmvc ,spring+springmvc+hibernate,取首字母也是ssh,以前用的要么是spring+springmvc+mybatis,要么是truts2+Spring+hibernate,突然搞这个,真的很烦。

问题已解决,我的配置没有错误,是dao层里因为贪多,写了一个公用的获取session的方法,结果导致bean注入不进来,换成普通的方法,就好了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问