type: Status reportmessage: There is no Action mapped for action name Login.description: The requested resource (There is no Action mapped for action name Login.) is not available.

解决方案 »

  1.   


    struts-login.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <package name="login" namespace="/login" extends="default">
    <action name="Action*" method="{1}" class="LoginAction">
    <result name="input">/login.jsp</result>
    <result type="success">/index.jsp</result>
    </action>
    </package>
    </struts>
      

  2.   

    There is no Action mapped for action name Login.
    在struts2中的配置错误仔细检查jsp中 <form action="Login.action">
    必须与 struts.xml中 有对应得action配置 大小写必须相同
    struts.xml中应该存在 name="Login"  的action配置
      

  3.   


    struts.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
        
        <include file="struts-login.xml"/>
        <package name="default" extends="default">
        
        </package></struts>
    login.jsp
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head><body>
    <s:form id="form1" name="form1" method="post" action="Logincheck">
      <table width="200" border="1" align="center">
        <tr>
          <td colspan="4"><img src="file:///E|/学习软件/网页三剑客/12.jpg" width="372" height="226" /></td>
        </tr>
        <tr>
    ........LoginActin:package zxg.wxit.org.action.login;import zxg.wxit.org.dao.*;
    import zxg.wxit.org.model.*;public class LoginAction {
    private String userName;
    private String password;
    private SysUserDAO sysUserDAO;
    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;
    }
    public SysUserDAO getSysUserDAO() {
    return sysUserDAO;
    }
    public void setSysUserDAO(SysUserDAO sysUserDAO) {
    this.sysUserDAO = sysUserDAO;
    }
    public String check(){
    SysUser user=(SysUser) sysUserDAO.findByName(userName);
    if(user!=null){
    if(password.equals(user.getPassword())){
    return "success";
    }
    }
    return "input";
    }
    }application-login.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
    <beans> <bean name="LoginAction" class="zxg.wxit.org.action.login.LoginAction"
    scope="prototype">
    </bean>
    </beans>application
      

  4.   

    <action name="Login" method="login" class="LoginAction">  class中必须填写全路径,加上你的类的包名
      <result name="input">/login.jsp</result>
      <result type="success">/index.jsp</result>
    </action>在你的LoginAction.java中定义一个login方法 public String login(){...}
      

  5.   

    我的jsp中action="Logincheck" struts-login.xml 中是
    <package name="Login" namespace="/login" extends="default">
    <action name="Login*" method="{1}" class="LoginAction">
    <result name="input">/login.jsp</result>
    <result type="success">/index.jsp</result>
    </action>
    </package>
    LoginAction.java中方法名是:check()
      

  6.   

    <s:form id="form1" name="form1" method="post" action="Logincheck"><action name="Logincheck" method="loginCheck" class="LoginAction">  类写上全路径
    此类中定义一个loginCheck的方法
      

  7.   

    我在spring中定义了
    <bean name="LoginAction" class="zxg.wxit.org.action.login.LoginAction"
      

  8.   

    我的jsp中action="Logincheck"   这里要写成 Logincheck.action
      

  9.   


    不必要定义。。直接
    <action name="Logincheck" method="check" class="zxg.wxit.org.action.login.LoginAction"> 
      

  10.   

    我照你说的做了,重启服务器还是不行
    http://127.0.0.1:8080/MyProject2/Logincheck.action
      

  11.   

    像你所说一样改了,运行地址是
    http://127.0.0.1:8080/MyProject2/action/login/Logincheck.action
    但还是出错
    错误也一样
      

  12.   

    god...
    jsp中
    <form action="Logincheck.action">
    ....
    </form>struts.xml中
    <action name="Logincheck" method="check" class="zxg.wxit.org.action.login.LoginAction"> 
     <result name="input">/login.jsp</result>
     <result type="success">/index.jsp</result>
    </action>Action中 zxg.wxit.org.action.login.LoginAction.java 继承 ActionSupport 定义方法 
    public String check(){
      //....
      return "input";
    }
      

  13.   

    照你所说改了之后也是一样效果
    运行地址
    http://127.0.0.1:8080/MyProject2/action/login/Logincheck.action
    而且我觉得像你这样做的话
    spring是什么作用啊
    我是初学者
    不懂
    他们之间关系
      

  14.   

    大哥。。你在web.xml中配置了struts2的过滤器了没啊?
    初学者的话先别直接弄spring吧先把struts和hibernate搞懂在去弄spring。
    一步步来。得先搞清楚mvc再去弄spring对你有好处的
      

  15.   

    我的BaseAction继承 ActionSupport,忘了在LoginAction中继承BaseAction了
    不过加上后还是不行啊,我快疯了
      

  16.   

    仔细检查我跟你说的三步吧。不能错一个字母。
    jsp中记得是 Logincheck.action
    struts.xml中是Logincheck
      

  17.   


    jsp中:
    <s:form id="form1" name="form1" method="post" action="Logincheck.action">
    struts-login.xml中:
    <package name="Login" namespace="login" extends="default">
    <action name="Logincheck" method="{1}" class="zxg.wxit.org.action.login.LoginAction">
    运行地址
    http://127.0.0.1:8080/MyProject2/Logincheck.action
    还是一样的
      

  18.   

    吧你的zxg.wxit.org.action.login.LoginAction代码贴出来
      

  19.   

    package zxg.wxit.org.action.login;import zxg.wxit.org.action.BaseAction;
    import zxg.wxit.org.dao.*;
    import zxg.wxit.org.model.*;public class LoginAction extends BaseAction {
    private String userName;
    private String password;
    private SysUserDAO sysUserDAO;
    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;
    }
    public SysUserDAO getSysUserDAO() {
    return sysUserDAO;
    }
    public void setSysUserDAO(SysUserDAO sysUserDAO) {
    this.sysUserDAO = sysUserDAO;
    }
    public String check(){
    SysUser user=(SysUser) sysUserDAO.findByName(userName);
    if(user!=null){
    if(password.equals(user.getPassword())){
    return "success";
    }
    }
    return "input";
    }
    }
      

  20.   

    console 中没反应
    只有浏览器中报错
    There is no Action mapped for namespace / and action name Logincheck.description The requested resource (There is no Action mapped for namespace / and action name Logincheck.) is not available.
      

  21.   


    struts.xml中把包名改成这个  
    <package name="Login" namespace="/login" extends="struts-default">另外 你的BaseAction的类代码也贴出来
      

  22.   

    晕!!你必须用
    http://127.0.0.1:8080/MyProject2/Logincheck  来访问
    不能http://127.0.0.1:8080/MyProject2/Logincheck.action一直没注意,原来你是直接通过url来访问的。。汗
      

  23.   

    package zxg.wxit.org.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts2.ServletActionContext;
    import com.opensymphony.xwork2.ActionSupport;public class BaseAction extends ActionSupport  {

    protected static Log logger = LogFactory.getLog(BaseAction.class); protected HttpServletRequest getRequest() {
    return ServletActionContext.getRequest();
    }

    protected HttpServletResponse getResponse() {
    return ServletActionContext.getResponse();
    }


    protected HttpSession getSession() {
    return this.getRequest().getSession();
    }
    }
      

  24.   

    <package name="Login" namespace="" extends="struts-default">还没解决的话就是你的struts.xml文件配置错误了
    把namespace置空。好久没弄过struts2.。。突然看到你这帖子,早上无聊,呵呵,复习了下
      

  25.   

    我的是struts-login.xml然后在struts.xml中包含的,
      

  26.   


    struts-login.xml
    <package name="Login" namespace="" extends="default">
    <action name="Logincheck" method="{1}" class="zxg.wxit.org.action.login.LoginAction">
    struts.xml
    <package name="struts2" extends="struts-default">
        
      

  27.   


    struts-login.xml
    <package name="Login" namespace="" extends="default">
    default改成struts-default tomcat启动会出错
      

  28.   

    那就先别包含呗
    保证配置没错再去分开啊。。
    把这块配置到struts.xml中把struts.xml中配置struts-login.xml的部分注释掉。先确保不404
      

  29.   

    在jsp页面中访问的时候要注意当前的的路径,要是已经在login下面了,也就是说打开jsp页面的时候,浏览器的地址栏是以login结尾的,form的action里面才可以不加那个package名,就为Logincheck.action。否则就为login/Logincheck.action
      

  30.   

       struts.xml文件中的<action-mappings>配置不正确。
       <action-mappings>
          这个地方改正确就可以了
      </action-mappings>
      

  31.   

    看了你的,我再仔细找了一下,果然有错,result里面返回结果的name写成了Type,哎!郁闷