web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
</web-app>
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>
<package name="struts2" extends="struts-dafault">
<action name="login" class="org.test.LoginAction">
<result>/result.jsp</result>
</action>
</package></struts>
但是当我运行时出现如下错误:
 Could not find action or result
There is no Action mapped for namespace / and action name login. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
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:233)
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:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thre
ad.run(Unknown Source)
地址栏的字符串如下:http://127.0.0.1:8080/struts2/login.action

解决方案 »

  1.   

    这个是说找不到对应的action啊,估计是你的配置文件有问题啊,好好检查啊
      

  2.   

    struts.xml里action的name属性值和你页面的action要一致
      

  3.   

    先看看你系统启动转载struts2是有没有报告什么错误
    再有就是检查一下配置文件,最好是找一个blank包中的修改一下
      

  4.   

    最简单的错误了,找不到action呗,检查你的LoginAction的execute()方法,是返回SUCCESS吗?有没有哪地方写错字母了?
      

  5.   

    楼上说的对
    在<result>里面最好指定name属性的值是success还是error
      

  6.   

    <package name="default" extends="struts-dafault"> 
    <action name="login" class="org.test.LoginAction"> 
    <result>/result.jsp </result> 
    </action>
      

  7.   

    JSP去掉 login.action 后面的.action
      

  8.   

    <result>/result.jsp </result> 
    改成:
    <result name="从action中返回的字符串">/result.jsp </result> 
      

  9.   

    如果是超链接   login.action如果是表单提交:1.struts2标签的 <s:from  action="login"  ...
                 2.纯html的 <form action="login.action" ...
      

  10.   

    struts放在src下不要放在web-inf了
      

  11.   

    struts.xml放在src下不要放在web-inf了
      

  12.   

    I see .谢谢各位了我的错误地方找到了.