public class LoginAction extends ActionSupport implements ModelDriven<User>{ private static final long serialVersionUID = 1L; 
User user = new User(); 
public User getModel() { 
return user; 
} public String execute(){ 
if(user.getUsername().trim().equals("admin")){ return "loginSuc"; 
} else { 
return "loginFail"; 

} } 
<struts> 
<package name="loginTest" extends="struts-default" > 
<action name="login" class="com.test.action.LoginAction"> 
<result name="loginSuc">/loginSuc.jsp</result> 
<result name="loginFail">/loginFail.jsp</result> 
</action> </struts>    Action能正常的获取表单的值,跳转的时候报这个异常,我改成SUCCES也报这个异常?那错了? 2010-7-11 16:27:42 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn 
警告: Could not find action or result 
No result defined for action com.test.action.StudentAction and result success 
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:364) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266) 
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) 
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 

解决方案 »

  1.   

    No result defined for action com.test.action.StudentAction and result success  
      

  2.   

    让 execute()方法直接返回loginSuc 看看。
      

  3.   

    这个问题首先你要看一下你的包都添加没有,其次,仔细检查一下你的配置,最后 也是我帮其他人解决的时候,也是这个问题,他把struts.xml 的位置放错了,所以找不到,希望对你有帮助
      

  4.   

    lz:
      如何证明action正常获取了表单中的值,
      我那时搞struts2的时候好像没有实现ModelDriven 这个接口。而是这样的:
    public class LoginAction extends ActionSupport{
      private User user = new User();  public void setUser(User user){
         this.user = user ; 
      }
      public User getUser(){
         return this.user ;
      }
     
      ....execute()   .......
    }
      然后就是在页面中
      <s:textfield name="user.name"/>
      ...........  这样的啊。但是现在你的那种写法我以前好像没有见过,可能也是对的。
     
     
      

  5.   

    User类是不是没有序列化呀!!
      

  6.   

            你这个是用ModelDriven 获取数据的。
    No result defined for action com.test.action.StudentAction and result success错误写的很清楚,com.test.action.StudentAction  关于这个的你的struts。xml里面是
    com.test.action.LoginAction 这样的,你自己看看能找到不仔细点。
      

  7.   

    个人觉得应该是:result中没有SUCCESS对应的配置
    建议楼主改成这样:
    <struts>  
    <package name="loginTest" extends="struts-default" >  
    <action name="login" class="com.test.action.LoginAction"> 
    <result name="SUCCESS">/loginSuc.jsp</result>  
    <result name="loginSuc">/loginSuc.jsp</result>  
    <result name="loginFail">/loginFail.jsp</result>  
    </action>  </struts>   
      

  8.   

    可能是execute()方法里抛出异常了. Action里如果抛出异常了,Struts2会跳转到<result name="input">XXX</result>, 如果你没有定义这个名为"input"的result, 就会报楼主遇到的错
      

  9.   

    楼主加一个 <result name="input">/loginFail.jsp</result> 试试
      

  10.   

    No result defined for action com.test.action.StudentAction and result success  
      你找问题的出发点都不对  把这个类拿上来看看。
     
      

  11.   

    你的xml中有一个:StudentAction,没有配置success返回字符串吧。。
    No result defined for action com.test.action.StudentAction and result success