zoukankan      html  css  js  c++  java
  • coulid not find action

    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>

  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/SoftwareBuilding/p/8447000.html
Copyright © 2011-2022 走看看