There is no Action mapped for namespace / and action name usersAction_login
这是代码<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<filter>
<filter-name>usersLoginFilter</filter-name>
<filter-class>cn.itcast.shop.filter.UsersLoginFilter</filter-class>
</filter>
    
    <filter-mapping>
     <filter-name>usersLoginFilter</filter-name>
     <url-pattern>/users/*</url-pattern>
    </filter-mapping>
    
    <filter>
<filter-name>accountLoginFilter</filter-name>
<filter-class>cn.itcast.shop.filter.AccountLoginFilter</filter-class>
</filter>
    
    <filter-mapping>
     <filter-name>accountLoginFilter</filter-name>
     <url-pattern>/admin/*</url-pattern>
    </filter-mapping>

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
    
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 监听器必须配置ContextLoaderListener后面, ContextLoaderListener中才获取的Spring配置文件 -->
<listener>
<listener-class>cn.itcast.shop.listener.ShopServletContextListener</listener-class>
</listener>
<!-- 配置session监听器,用来创建session -->
<listener>
<listener-class>cn.itcast.shop.listener.ShopHttpSessionListener</listener-class>
</listener>

</web-app>
struts2<?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> <constant name="struts.devMode" value="false" />
<!-- struts-default 使用默认Struts拦截器 -->
<package name="default" extends="json-default" >
<interceptors>
<interceptor name="logsInterceptor" class="cn.itcast.shop.interceptor.LogsInterceptor" />
<interceptor name="checkPrivilegeInterceptor" class="cn.itcast.shop.interceptor.CheckPrivilegeInterceptor" />
<interceptor-stack name="defaultStack">
<!-- 权限验证第一个执行 -->
<interceptor-ref name="checkPrivilegeInterceptor" />
<interceptor-ref name="logsInterceptor">
<param name="includeMethods">save*,update*,delete*</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors> <global-results>
<result name="main">/admin/main.jsp</result>
<result name="aindex">/admin/index.jsp</result>
<result name="login">/login.jsp</result>
<result name="alogin">/alogin.jsp</result>
<result name="index">/index.jsp</result>
<result name="error">/error.jsp</result>
<result name="error2">/error.jsp</result>
</global-results> <global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception" />
</global-exception-mappings> <action name="accountAction_*" method="{1}" class="accountAction">
<result name="queryUI">/admin/account/query.jsp</result>
<result name="saveUI">/admin/account/save.jsp</result>
<result name="updateUI">/admin/account/update.jsp</result>
</action>
<action name="categoryAction_*" method="{1}" class="categoryAction">
<result name="queryUI">/admin/category/query.jsp</result>
<result name="saveUI">/admin/category/save.jsp</result>
</action>
<action name="goodsAction_*" method="{1}" class="goodsAction">
<result name="queryUI">/admin/goods/query.jsp</result>
<result name="saveUI">/admin/goods/save.jsp</result>
<result name="updateUI">/admin/goods/update.jsp</result>
<result name="detail">/detail.jsp</result>
<result name="search">/search.jsp</result>
<result name="json" type="json">
<param name="root">keyWords</param>
</result>
</action>
<action name="sorderAction_*" method="{1}" class="sorderAction">
<result name="showCar" type="redirect">/showCar.jsp</result>
<!--
<result name="demo" type="chain"> <param
name="actionName">forderAction_cluFtotal</param> </result>
-->
<result name="json1" type="json">
<!-- root 源码中指定的 json数据源 -->
<param name="root">jsonMap</param>
</result>
</action>
<action name="forderAction_*" method="{1}" class="forderAction">
<result name="bank" type="redirect">/users/bank.jsp</result>
</action>
<action name="usersAction_*" method="{1}" class="usersAction">
<result name="aa">${goUrl}</result>
</action>
<action name="payAction_*" method="{1}" class="payAction">
<result name="reqpay">/users/reqpay.jsp</result>
<result name="payResult">/users/payResult.jsp</result>
</action>
<action name="roleAction_*" method="{1}" class="roleAction">
<result name="saveUI">/admin/role/save.jsp</result>
<result name="queryUI">/admin/role/query.jsp</result>
<result name="updateUI">/admin/role/update.jsp</result>
</action> </package>
</struts>    jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
     <form action="${pageContext.request.contextPath}/usersAction_login.action" method="post">
       哈录名:<input type="text" name="ulogin" value="user" /><br/>
           密码:  <input type="password" name="upass" value="user" /><br/>
       ${requestScope.error}
       <input type="submit" value="提交" />
     </form>
  </body>
</html>
strusts.xml也在classes文件夹里,找了很多原因了,还是没搞好,求大神给予一点帮助