web.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 用于初始化Spring容器的Listener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/daoContext.xml,/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

<!-- 定义Struts2的FilterDispathcer的Filter -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter> <!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>struts.xml配置
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <constant name="struts.custom.i18n.resources" value="messageResource"/>
<constant name="struts.i18n.encoding" value="GBK"/>    <package name="loginactions" extends="struts-default">
     <action name="validlogin" class="validLoginAction">
     <result name="success">/main.jsp</result>
            <result name="fail">/login.jsp</result>
     </action>
    </package>
</struts>
applicationContext.xml文件配置:
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:graduate"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="whhit"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="whhit"/>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="20"/>
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1"/>
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1"/>
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20"/>
</bean>

<!--定义了Hibernate的SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- property name="mappingResources">
            <list>
<value>StudentInfo.hbm.xml</value>
            </list>
        </property-->
        
        <property name="mappingLocations">
        <list>
            <value>classpath:com/whhit/graduate/*.hbm.xml</value>
        </list>
     </property>
        
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.jdbc.batch_size">20</prop> 
            </props>
        </property>
    </bean>
    
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <!--  事务拦截器bean需要依赖注入一个事务管理器 -->
        <property name="transactionManager" ref="transactionManager"/>
     <property name="transactionAttributes">
    <!--  下面定义事务传播属性-->
    <props>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>
</bean>    <!-- 定义BeanNameAutoProxyCreator-->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <!--  指定对满足哪些bean name的bean自动生成业务代理 -->
    <property name="beanNames">
            <!--  下面是所有需要自动创建事务代理的bean-->
            <list>
                <value>loginmgr</value>
            </list>
            <!--  此处可增加其他需要自动创建事务代理的bean-->
    </property>
        <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
        <property name="interceptorNames">
            <list>
                <!-- 此处可增加其他新的Interceptor -->
                <value>transactionInterceptor</value> 
            </list>
        </property>
    </bean>
    
    <bean id="loginService" class="com.whhit.graduate.login.service.LoginManagerImpl">
     <property name="userDao" ref="userDao"/>
    </bean>
<bean id="validLoginAction" class="com.whhit.graduate.login.service.LoginAction">
<property name="loginmgr" ref="loginService"/>
</bean>

</beans>

解决方案 »

  1.   

    (#^$(@!&$)!&)
    眼睛都花了
    说下你是在执行什么的时候报的错?
    启动tmcat的时候?
    login的时候?
    进行业务处理的时候?
      

  2.   

    不好意思,忘帖错误信息了
    login.jsp的form
    <form action="validlogin.action" method="post">错误如下
    严重: Could not find action or result
    There is no Action mapped for namespace / and action name validlogin. - [unknown location]
    at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
    at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
      

  3.   

    tomcat启动正常
    错误发生在提交表单时
      

  4.   

    可能是访问的路径不对吧
    你初次访问的url不要直接使用login.jsp
    这样访问试一下:http://127.0.0.1:8080/应用程序路径/validlogin.action
      

  5.   

    楼上的方法我也试过了
    直接使用login.jsp后,地址栏会转为http://localhost:8080/graduate/validlogin.action。。
    不知道是哪儿出错了。初次用这个框架。很多地方都不太明白。还是谢谢楼上的好心人
      

  6.   

    <filter-mapping> 
       <filter-name>struts2 </filter-name> 
       <url-pattern>/* </url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
       <filter-name>struts2 </filter-name> 
       <url-pattern>*.action</url-pattern> 
    </filter-mapping> 
      

  7.   

    你的struts2.xml放在WEB-INF下还是放在classes下.?我用struts2的时候也碰到了这个问题, 把struts.xml放到classes下就没事了. 
      

  8.   

    我的也同样的错。
    是struts.xml名写错了 写成了struts2.xml了
      

  9.   


    我也遇到这个问题,在别的地方还能用,从SVN上checkout下来,项目带个小红叉,看了一下程序都正确也没太在意这个红叉.
    一提交就找不到action映射,找了半天也没发现错误.
    最后我才怀疑这个红叉,看了一下problems,说是lib目录下的jar包问题,把项目删了,重新从checkout一下,红叉消失了,运行起来也正常了.
    这只是我个人的解决,不同情况问题原因也不定相同,只是给遇到同样问题的朋友一个启发.
      

  10.   

    thank you!就是这个问题,困扰了我一个下午!