解决STRUTS2 错误 There is no Action mapped for namespace / and action name login

使用MyEclipse8.5 + tomcat6.0进行开发。
这是一个登录验证程序。 
已经把structs资源包中的blank项目中的jar放到myeclipse的lib目录中 
代码部分见下 
错误信息 
严重: Could not find action or result 
There is no Action mapped for namespace / and action name login. - [unknown location]  ......
===================================================================
  /**********************以下为代码和配置文件**********************/
===================================================================
LoginAction.java程序如下:
package com.struts.action;

public class LoginAction {

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;
}

public String execute() {
if (username.trim().equals("www") && (password.equals("www"))) {
return "success";
} else {
return "failed";
}
}
}
===============================================================
index.jsp文件代码如下:
<body>
<center>
<h1 align="center">
用户登录
</h1>
<form action="login.action" method="post">
姓名:
<input type="text" name="username" />
<br>
密码:
<input type="text" name="password" />
<br>
<br>
<br>
<input type="submit" name="submit" value="登录" />
</form>
</center>
</body>
================================================================
success.jsp和failed.jsp代码非常相似,如下:
success.jsp
<body>
<h1>欢迎登录!</h1>
</body>
failed.jsp
<body>
<h1>
登录失败!
</h1>
<a href="index.jsp">返回</a>
</body>
================================================================
其中struts.xml配置如下:
<struts>
<package namespace="" name="login" extends="struts-default">
<action name="login" class="com.struts.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="failed">/failed.jsp</result>
</action>
</package>
</struts>
=================================================================
web.xml配置如下:
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
=================================================================
  /*******************一下为解决方法****************************/
=================================================================
刚开始时,输入用户名和密码点击登录按钮时,就会显示http;status 404错误, There is no Action mapped for namespace / and action name login,经过仔细观察,解决方法如下:
1.将struts.xml一定要放在 src目录下,这样在程序编译时,就会将其放到classes目录下。
2.一定要将struts.xml中的extends="struts-default"写正确,刚开始的时候,把default写成了dafult,最后经过改正,程序可以正常运行了!
3.插一句,namespace写不写都影响不大的。
一定要注意以上红色字体和蓝色字体部分,这个是程序能否正常运行的关键!!!

你可能感兴趣的:(apache,jsp,xml,struts,MyEclipse)