zoukankan      html  css  js  c++  java
  • Could not find action or result

    No result defined for action struts.user.action.loginUser and result success
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    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:230)
    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:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

    关于此类报错,我花费两天,查阅大量资料,得到以下几种方法:

      1. 检查action类中的返回值与struts.xml中result中的name属性是否一致

      2.检查<form>表单中的action属性是否与struts中的name属性是否一致

      3.如果一致,但是报错就可以往<package> 里面加入 namespace="/'属性 试试

      4.删除struts2-convention-plugin-2.2.1.jar

    还有些方法记不得了,这些都是从那些大神那儿看来的,但是依然未解决我的问题。我创建了两个web项目,一个主项目,一个对照项目,在同样的操作下,对照项目成功,主项目失败,并且无论怎么调式都失败,所以决定暂时放弃Struts框架,等开学去找大牛

    ,妈的真的心累啊!!!!!!!!(底层数据逻辑,业务逻辑,通过junit测试都没有问题,唯一问题就是处在struts.xml上)

    下面先贴输出主项目action:

    public class loginUser extends ActionSupport implements ModelDriven<User>{
    /**
    *
    */
    private static final long serialVersionUID = -3976216323852801832L;
    private User model= new User();
    @Override
    public User getModel() {
    // TODO Auto-generated method stub
    return model;
    }
    public String execute(String loginName,String loginPwd) throws Exception{
    loginName=model.getLoginName();
    loginPwd=model.getLoginPwd();
    System.out.println("用户名:"+loginName);
    System.out.println("密码"+loginPwd);
    if (ServiceFactory.getUserServiceInstance().login(loginName, loginPwd)) {
    System.out.println("success");
    return INPUT;
    }else {
    System.out.println("faild");
    return ERROR;
    }
    }
    public void vaildate(){
    if(model.getLoginName() == null){
    addFieldError("loginName", "用户名不能为空");
    }else if (model.getLoginPwd() == null) {
    addFieldError("loginPwd", "密码不能为空");
    }
    }
    public void addActionError(String anErrorMessage){
    String s=anErrorMessage;
    System.out.println(s);
    }
    public void addActionMessage(String aMessage){
    String s=aMessage;
    System.out.println(s);

    }
    public void addFieldError(String fieldName, String errorMessage){
    String s=errorMessage;
    String f=fieldName;
    System.out.println(s);
    System.out.println(f);

    }
    }

    struts.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    <package name="TMD" namespace="/" extends="struts-default">
    <action name="loadUserCheck" class="struts.user.action.loginUser">
    <result name="INPUT">/loginSuccess.jsp</result>
    <result name="ERROR">/loginField.jsp</result>
    </action>
    </package>
    </struts>

    登陆页面jsp:

    <form action="loadUserCheck" method="POST">
    姓名:<input name="loginName" type="text">
    密码:<input name="loginPwd" type="password">
    <input name="submit" type="submit" value="提交">
    </form>

    对照action:

    package TestAction;

    import com.opensymphony.xwork2.ActionSupport;

    public class TestActionLoad extends ActionSupport{
    public String getLoginName() {
    return loginName;
    }
    public void setLoginName(String loginName) {
    this.loginName = loginName;
    }
    public String getLoginPwd() {
    return loginPwd;
    }
    public void setLoginPwd(String loginPwd) {
    this.loginPwd = loginPwd;
    }
    private String loginName;
    private String loginPwd;
    public String execute() throws Exception{
    if(getLoginName().equalsIgnoreCase("ad")&&
    getLoginPwd().equalsIgnoreCase("12")){
    return INPUT;
    }else {
    return ERROR;
    }
    }
    public void vaildate(){
    if (getLoginName()==null || getLoginPwd()== null) {
    addFieldError("loginName", "登陆账号不能为空");
    }
    }

    }

    struts.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    <package name="strut" namespace="/" extends="struts-default">
    <action name="travel" class="TestAction.TestActionLoad">
    <result name="input">/index.jsp</result>
    <result name="error">/loginField.jsp</result>
    </action>
    </package>
    </struts>

    登陆页面jsp:

    <form action="travel" method="POST">
    姓名:<input name="loginName" type="text">
    密码:<input name="loginPwd" type="password">
    <input name="submit" type="submit" value="提交">

    </form>

    有没有老哥帮我解决下啊,感激不尽!!

  • 相关阅读:
    javaScript基本语法函数
    JavaScript内置对象 以及和 内置对象相关的语法
    SCRIPT5007: 属性“test”的值为 null、未定义或不是 Function 对象
    Dom4j的使用(全而好的文章)
    JavaScript的对话框
    Ajax重构
    java中4种操作(DOM,SAX,JDOM,DOM4J)xml方式详解与比较
    Dom4j的基本使用
    JavaScript事件处理(重要)
    母函数(Generating function)详解
  • 原文地址:https://www.cnblogs.com/SoftwareBuilding/p/8446928.html
Copyright © 2011-2022 走看看