大哥,你的action配置里<action   name="login"   class="LoginAction"> ,
后面的class="LoginAction"是bean的id啊,但你的bean配置文件里面没有这个名字
当然找不到了
<action   name="login"   class="LoginAction"> 
<bean   id="login"   class="org.fcb.action.LoginAction".../>
不是name跟id对应的,而是class与下面的id对应

解决方案 »

  1.   

    呵呵....谢谢指出!!我会更加努力的!!!
    不过改了之后问题又出来了
     Error building results for action login in namespace action
    Caused by: No result type specified for result named 'success', perhaps the parent package does not specify the result type? - result - file:/D:/tomcat/webapps/ssh/WEB-INF/classes/struts.xml:10:27
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:575)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:338)
    ... 35 morestruts.xml 
    <?xml   version="1.0"   encoding="GBK"?> 
    <!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-default.xml"/> 
    <constant   name="struts.objectFactory"   value="spring"   /> 
    <package   name="action"   namespace="action"> 
    <action   name="login"   class="LoginAction"> 
    <result   name="success"> /welcome.jsp </result> 
    <result   name="error"> /error.jsp </result> 
    </action> 
    </package> 
    </struts> 
    里面有定义了啊,怎么会没有呢?
      

  2.   

    你的action类里面肯定写了return "success"
    应该改成return SUCCESS;
      

  3.   

    下面的异常有
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:340)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
      

  4.   

    没有啊,这是我的action类
    LoginAction.java
    package org.fcb.action;
    import org.apache.struts2.ServletActionContext;
    import org.fcb.service.impl.UserService;
    import org.fcb.vo.User;import com.opensymphony.xwork2.ActionSupport;
    @SuppressWarnings("serial")
    public class LoginAction extends ActionSupport {
    private User user ;
    private UserService userService ;

    @SuppressWarnings("unchecked")
    @Override
    public String execute() throws Exception {
    if(userService.login(user).size()!=0){
    ServletActionContext.getContext().getSession().put("user",user);
    return SUCCESS;
    }
    return ERROR;
    }
    public User getUser() {
    return user;
    }
    public void setUser(User user) {
    this.user = user;
    }
    public UserService getUserService() {
    return userService;
    }
    public void setUserService(UserService userService) {
    this.userService = userService;
    }
    }
      

  5.   

    你的action类里面肯定写了return   "success" 
    应该改成return   SUCCESS;
    你自己看一下
      

  6.   

    当返回类型是SUCCESS的时候
    <result name="success">/welcome.jsp   </result>里面的name="success"可以去掉的
    你试一下
      

  7.   

    这个错误的意思是系统不知道名为"success"的result所对应的type是什么,也就是说
    它不认为jsp为默认type,你修改一下action配置文件,类似下面的:
    <package name="xxx" extends="struts-default">
    试一下
      

  8.   

    OK,可以了!!! 但又问题来了!!!
    我做的中一个登录程序
    进入登录页面后输入数据,提交,然后出现了:
    The requested resource (/ssh/login) is not available.
    URL是http://localhost:8888/ssh/login;jsessionid=6C367B50C3FFE44555EB238EFC971773
    本来应该是login.action 的,可现在不是!!
      

  9.   

    登录页面
    <%@ page language="java" contentType="text/html;charset=GBK"%>
    <%@ taglib prefix="s" uri="/struts-tags" %><html>
      <head>
        <title>用户登录</title>
      </head>
      <body>
      <div align="center">
      <s:form action="login" method="post">
        <h3 align="center">登录</h3>
       <s:textfield name="user.username" label="用户名"/>
        <s:password name="user.password" label="密码"/>
       <s:submit label="登录" align="center"/>
      </s:form>
      </div>
      </body>
    </html>
      

  10.   

    <s:form   action="login"   method="post">改成action="login.action"吧
      

  11.   

    There is no Action mapped for namespace / and action name login. - [unknown location]
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
      

  12.   

    <package name="action" namespace="action">把namespace删掉吧,因为你刚才已经继承了struts-default
      

  13.   

    可以了,不过我想问这个namespace跟那个继承了struts-default有什么关系!!
      

  14.   

    struts-default里面应该是有默认的namespace的,当你继承了它之后,就会用默认的namespace,但你的action又是在"action"这个
    namespace下的,这样就出来这个错误There is no Action mapped for namespace / and action name login. - [unknown   location]
    我是这么理解的,不保证对。
    同样你可以不继承struts-default,那么当你的result type为jsp的时候,你需要指明返回类型了,这个你可以看一下struts-default.xml中配置,
    很清晰的,一般我们都继承struts-default的,我没有去设置过namespace,所以具体的情况不是很了解