No result defined for action这是struts2的一个拦截器报的错误,当你的form中的数据有问题,比如说
<input type="text" name="receiverLoginID" value="<%=name%>"/>
当 name值为NULL时,就出这个错了,所以你可以在当前页面加入以下标签
<div style="color:red">
    <s:fielderror />
</div>
它就会显示拦截器的错误,并在struts的XML中对应action里加如
<result name="input">/AddProducts.jsp</result>
让他把错误返回到该页面就可以了

解决方案 »

  1.   

    恩,谢谢,我的逻辑主要是登录后根据用户对应的角色字段的值返回他能够进行操作的菜单,然后在页面中用<s:property>标签迭代读取menu,现在看来,这个异常是由于没有查到值导致的,谢谢楼上,现在就是我spring的配置麻烦能不能帮我看看有没有问题,我昨天晚上下了一个SSH的项目,发现里面的application.xml比我的多了好多东西,我先试试看。再次感谢楼上。
      

  2.   

    <bean id="admintarget" 
    class="com.teastusystem.service.spring.AdminServiceSpringImpl"> 
    <property name="adminDAO" ref="adminDAO" /> 
    </bean> <!--**********AdminDAO object:Hibernate implementation********** --> <bean id="adminDAO" 
    class="com.teastusystem.service.dao.hibernate.AdminHibernateDAO"> 
    <property name="sessionFactory"> 
    <ref local="mySessionFactory" /> 
    </property> 
    </bean> 
    补充一下,我的AdminServiceSpringImplAdminHibernateDAO分别是业务逻辑实现类和持久化访问类,另外还有IAdminService和IAdminDAO,上面这两个类分别是这两个接口的实现类,我要在BaseAction中直接用IAdminService admintarget还需要怎么写,貌似是得不到实例啊,但是我的admin怎么行?
      

  3.   

    你的 struts.xml 里少了一个跳转页面 
    <action name="mgrmenu" 
    class="com.teastusystem.struts.action.ManagerMenuAction"> 
                            <result name="success">/mgrmenu.jsp </result> 
                            <result name="error">/***.jsp </result> 
    </action>还有就是不知道你的拦截器写的对不对 呵呵
      

  4.   

    结贴,最终正确的applicationContext.xml(部分代码):
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd"><beans default-autowire="autodetect">
    <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>admintarget</value>
    <value>menutarget</value>
    </list>
    <!--  此处可增加其他需要自动创建事务代理的bean-->
    </property>
    <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
    <property name="interceptorNames">
    <list>
    <!-- 此处可增加其他新的Interceptor -->
    <value>transactionInterceptor</value>
    </list>
    </property>
    </bean> <!-- ***********IAdminService的实现类定义*********-->
    <bean id="admintarget"
    class="com.teastusystem.service.spring.AdminServiceSpringImpl">
    <property name="adminDAO" ref="adminDAO" />
    </bean> <!--**********AdminDAO object:Hibernate implementation********** --> <bean id="adminDAO"
    class="com.teastusystem.service.dao.hibernate.AdminHibernateDAO">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>
    <!-- ***********IMenuService的实现类定义*********-->
    <bean id="menutarget"
    class="com.teastusystem.service.spring.MenuServiceSpringImpl">
    <property name="menuDAO" ref="menuDAO" />
    </bean> <!--**********MenuDAO object:Hibernate implementation********** --> <bean id="menuDAO"
    class="com.teastusystem.service.dao.hibernate.MenuHibernateDAO">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>
    </beans>
    谢谢楼上以及楼楼楼上:)
      

  5.   

    原因是部署在Tomcat中的applicationContext.xml与src中的没有同步,必须两个都改.