配置管理-struts2把Action配成login就报错,配成其他的就不会,这是为何?

问题描述

struts2把Action配成login就报错,配成其他的就不会,这是为何?
jsp代码,就是在body上加个表单,表单内容如下:

<form action=""login.action"" method=""post"">        <table>            <tr>                <td>用户名:</td>                <td><input type=""text"" name=""user.username""></td>            </tr>            <tr>                <td>密码:</td>                <td><input type=""password"" name=""user.password""></td>            </tr>            <tr>                <td><input type=""reset"" value=""重填""></td>                <td><input type=""submit"" value=""登录""></td>            </tr>        </table>    </form> 

然后是Action

 public class LoginAction extends ActionSupport{    /**     *      */    private static final long serialVersionUID = 1L;    private User user;    @Override    public String execute() throws Exception     {        if(""zhangsan"".equals(user.getUsername())&&""123"".equals(user.getPassword()))        {            System.out.println(""SUCCESS 结果"");            return SUCCESS;        }        else        {            System.out.println(""error结果"");            return ERROR;        }    }    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }   }

再然后是struts2的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=""default"" extends=""struts-default"">        <action name=""login"" class=""com.action.LoginAction"">            <result name=""success"">/success.jsp</result>            <result name=""error"">/error.jsp</result>        </action>    </package></struts>   

最后是一个javabean

 public class User implements Serializable{    /**     *      */    private static final long serialVersionUID = 1L;    private String username;    private String password;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

error.jsp与success.jsp随便写就好,然后运行就一直报No result defined for action com.action.LoginAction and result 的错误,只要把struts.xml文件跟上面给出的jsp form里的login改成其他任意名字,例如:hhh之后,就正常运行不再报错。这是为何?求各位帮个忙解答下,感激不尽

解决方案

web.xml中struts配置的问题。祝好!

   <filter>   <filter-name>struts2</filter-name>   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  </filter>  <filter-mapping>   <filter-name>struts2</filter-name>   <url-pattern>/*</url-pattern>  </filter-mapping>

解决方案二:
你配置文件里默认的就是以[.action]结尾的;如果你想改结尾你继续往后学就知道了;
所以你将login.action改成login试试。
如果回答对您有帮助请采纳

解决方案三:
把web.xml里的*.action改成/*即可,真实体验

解决方案四:
在LoginAction类下的实例化User对象那里,private User user=new User(),然后在User类下添加一个无参构造方法,public User(){},这样试一下看行吗?

解决方案五:
我理解错了,看你报的错误,貌似是因为没有为action和result定义一个result,可能是因为少添加了一个result,你试着在LoginAction类中的execute方法下添加一个return LOGIN,然后在struts.xml文件中的action下添加一行代码:/success.jsp试下,如果还不行可能是其它问题!

解决方案六:
在struts.xml配置文件添加大代码为:

 <result name=""login"">/sucess.jsp</result>

解决方案七:
我也遇到过这种情况,你把这个jsp页面复制一个,然后删除这个,复制后的页面就可以正常运行了。经验

解决方案八:
/WEB-INF/jsp/user/userlist.jsp

看看你action中的name加了没有?

解决方案九:
问题已经解决,自己给个答案,这个问题主要是因为用了struts2.1所引起的。在2.1中有一个插件struts2-convention-plugin-2.1.8.jar,这个插件是2.1版本中新添加的默认核心包,这个插件是实现Struts2的零配置,但是这样问题就来了,如果引入就必须引入namespace命名空间,否则就会出现刚才的No result defined for action的异常。所以在struts.xml配置文件里,给package配置一个命名空间namespace=“/”即可。

时间: 2024-08-02 20:02:12

配置管理-struts2把Action配成login就报错,配成其他的就不会,这是为何?的相关文章

java ssh-no action mapped问题 tomcat运行报错

问题描述 no action mapped问题 tomcat运行报错 运行tomcat时没报错 我打了http://localhost:8080/xxpt/index.action后是404未找到 错误如下 09-29 10:07:52 WARN o.a.struts2.dispatcher.Dispatcher - Could not find action or result com.opensymphony.xwork2.config.ConfigurationException: The

有大虾知道为啥Eclipse导出的jar包可以正常运行,而用exe4j导出成exe 运行报错说嘛?

问题描述 在Eclipse里运行和导出的jar包都能够正常运行,但是,导出成exe就不能运行而且报错如下,哪位大侠能帮帮小弟 解决方案

集成IM之后DEBUG环境下可以登录,但RELEASE打包之后LOGIN就报错

问题描述 com.easemob.g.c: Can't initialize the configured debugger! 解决方案 -keep class com.easemob.* {*;}-keep class com.easemob.chat.** {*;}-keep class org.jivesoftware.** {*;}-keep class org.apache.** {*;}#另外,demo中发送表情的时候使用到反射,需要keep SmileUtils,注意前面的包名,#

2.0的集成成功后换成3.0报错,显示没有.a文件,但是已经添加进去了

问题描述 解决方案 解决方案二:重新导入下sdk吧,sdk导入的问题应该.跟几.0没啥关系,3.0就是给出了个ui库.

CF login登陆报错 Invalid authentication token.

问题描述 各位大神,小弟在搭建cloudfoundry时,用cflogin登陆,为啥验证已经通过,但是报了Invalidauthenticationtoken.Trylogginginagainwith'cflogin'.Ifproblemscontinue,pleasecontactyourCloudOperator.这个错误呢,登陆一直都不成功,能看出是什么问题吗? 解决方案 解决方案二:cftarget配置了吗解决方案三:可以参考官方文档http://docs.cloudfoundry.o

报错-这个Struts2错误是怎么回事啊?

问题描述 这个Struts2错误是怎么回事啊? 12:45:29,624 ERROR ParametersInterceptor:34 - Developer Notification (set struts.devMode to false to disable this message): Unexpected Exception caught setting 'police.id' on 'class yh.position.action.center.PoliceUpdateAction

Struts2中Action接收参数的方法

Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属性,创建get和set方法:     b.接收:通过属性接收参数,如:userName:     c.发送:使用属性名传递参数,如:user1!add?userName=Magci: 2.使用DomainModel接收参数:     a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法:    

struts2.0-spring会自动代理Struts2的action

问题描述 spring会自动代理Struts2的action 我的struts的action全部被spring配置成了aop,我的action出现的全部是代理对象. 导致我的action不能调用自己定义的方法.为什么我没有配置struts的action为aop, 但是spring全部自动配置成了aop?这spring的配置文件 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="htt

struts2中Action到底是什么,怎么理解

问题描述 struts2中Action到底是什么,怎么理解 1.配置完web.xml 2.创建视图页面login.jsp 3.创建业务控制器LoginAction类 (解释说:创建业务控制器LoginAction类,该类为程序的Action类) 4.配置LoginAction类 (解释说:当Action处理完客户端请求后返回一个字符串,没个字符串对应一个视图) 那么这个Action到底是什么,是一个类吗?怎么理解它,它和用于标签的有什么区别. 解决方案 首先,你了解Servlet么?Servle