没有为与上下文路径 [/Struts2Test] 关联的名称空间 [/] 和操作名称 [login] 映射的操作

2024-01-01

我是 Struts2 的初学者,我知道这个问题在这里被问了很多次,但我试图解决它并在这里阅读了很多线程,花了 6 个小时,但仍然无法让它工作。确实需要更多建议...

这是我的包裹:

Struts2Test
  +Struts2Test/src
    +tw.com.rrstudio.java.test
      -TestAction.java
  +Struts2Test/build
  +Struts2Test/WebContent
    +Struts2Test/WebContent/META-INF
      +Struts2Test/WebContent/WEB-INF/classes
      +Struts2Test/WebContent/WEB-INF/lib
      -Struts2Test/WebContent/WEB-INF/spring-context.xml
      -Struts2Test/WebContent/WEB-INF/spring-mvc.xml
      -Struts2Test/WebContent/WEB-INF/struts.xml
      -Struts2Test/WebContent/WEB-INF/struts2-action.xml
      -Struts2Test/WebContent/WEB-INF/web.xml
    -Struts2Test/WebContent/error.jsp
    -Struts2Test/WebContent/index.jsp
    -Struts2Test/WebContent/TestAction.jsp

My web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_0.xsd" version="3.0">
  <display-name>Struts2Test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      /WEB-INF/spring-context.xml
      /WEB-INF/spring-mvc.xml
    </param-value>
  </context-param>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
      <param-name>actionPackages</param-name>
      <param-value>tw.com.rrstudio.java.test</param-value>
    </init-param>
  </filter>

  <jsp-config>
    <taglib>
      <taglib-uri>HTTP://java.sun.com/jsp/jstl/core</taglib-uri>
      <taglib-location>/WEB-INF/lib/tld/c.tld</taglib-location>
    </taglib>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
  </jsp-config>

  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>10</session-timeout>
  </session-config>

</web-app>

并且,struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
  <!-- struts 2.3.16.3 has problem of security,needing to set DynamicMethodInvocation=false -->
  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  <constant name="struts.devMode" value="false" />
  
  <constant name="struts.objectFactory" value="spring" />

  <constant name="struts.action.extension" value="do"/>
  <constant name="struts.action.excludePattern" value="/jsp/.*?,/image/.*?,/css/.*?,/js/.*?,.*\\.jsp"/>

  <package name="default" extends="json-default" ></package>

  <package name="Strut2Test" extends="json-default" >
    <global-results>
      <result name="SystemErrorPage">/WebContent/error.jsp</result>
    </global-results>
    <action name="login" class="tw.com.rrstudio.java.test.TestAction">
      <result name="index">/WebContent/index.jsp</result>
      <result name="success">/WebContent/TestAction.jsp</result>
    </action>
  </package>

</struts>

索引.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=login.action">
<title>Index of Struts2Test</title>
</head>
<body>
  <h1>Index of Struts2Test</h1>
  <form action="testAction" method="post">
    <label for="name">Please enter your name</label><br/>
    <input type="text" name="name"/>
    <input type="submit" value="Say Hello"/>
  </form>
</body>
</html>

服务器是Tomcat 8.0.38,启动没有错误。但是当我访问

  • http://127.0.0.1:8080/Struts2Test/
  • http://127.0.0.1:8080/Struts2Test/login

它给了我这个(如标题)错误,如果我访问

  • http://127.0.0.1:8080/Struts2Test/index.jsp

我会得到常规的 404 结果。

现在我不知道,欢迎任何建议或提示......


相关问题:没有映射与上下文路径关联的命名空间和操作名称的操作

如果您使用 URL 来调用操作,请确保此 URL 已映射到 Struts 配置。要解决 URL 映射问题,您可以使用配置浏览器 https://struts.apache.org/plugins/config-browser/插入。只需将此插件添加到您的项目依赖项中,部署后,您就可以访问一个网站,该网站显示运行时配置以及用于调用操作的可用 URL。例如,如果您在端口 8080 上本地运行 Tomcat 并将应用程序部署在context,然后您可以使用以下命令访问插件的 URL

http://localhost:8080/[context]/config-browser/index.action

您可以单击侧边栏命名空间下的操作页面上的任何可用操作。另请注意,如果在包裹上找不到您的操作,则它可能位于default包裹。 Struts 在以下位置进行额外搜索default不在从 URL 映射的命名空间处的操作的命名空间。


查看配置浏览器 https://struts.apache.org/plugins/config-browser/调试配置的插件 问题。

要将 url 正确映射到操作,需要两个参数: 操作名称和命名空间。

Struts 在启动时加载 xml 配置,它应该知道 的位置struts.xml。默认情况下,它会在类路径上查找 找到一个已知名称的文件,例如struts.xml。然后它解析文档 并创建运行时配置。该配置用于 为操作 URL 找到适当的配置元素。如果没有这样的 请求期间找到元素,返回 404 错误代码 消息:There is no Action mapped for namespace and action name.

此消息还包含用于查找的名称空间和操作名称 动作配置。然后您可以在中检查您的配置设置struts.xml。有时动作名称和命名空间,存储在ActionMapping http://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/ActionMapping.html指出错误的动作。这些值是确定的 由ActionMapper http://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/ActionMapper.html可能有不同的实现,使用 通过插件。

还有另一个可能影响此映射器的设置 映射,但是如果您收到此消息,则要点是相同的,那么 URL 是 使用没有在运行时配置中映射任何操作配置。如果你 无法意识到您应该使用哪个 URL,您可以尝试配置浏览器 https://struts.apache.org/plugins/config-browser/插件来查看可用的 URL 列表。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有为与上下文路径 [/Struts2Test] 关联的名称空间 [/] 和操作名称 [login] 映射的操作 的相关文章

随机推荐

  • 在应用程序域之间来回传递集合对象

    以下示例基于 在应用程序域之间来回传递值 https stackoverflow com questions 1250774 passing values back and forth appdomains 其中 Marc Gravell
  • 扩展运算符类似物

    我有一个结构体和该结构体的实例 type Obj struct ssid string code string mit string and other props 23 var ValidObject Obj ssid AK93 KADJ
  • Android 应用程序连接到网络服务 - 不工作

    我正在尝试将我的应用程序连接到我在 asp net 中创建的 WCF 服务 该服务在我的本地计算机上运行 http localhost 8080 Service svc http localhost 8080 Service svc 但由于
  • 批量归一化 - Tensorflow

    我看过一些 BN 的例子 但还是有点困惑 所以我目前正在使用这个函数 它调用这里的函数 https github com tensorflow tensorflow blob master tensorflow g3doc api docs
  • 解压 sys.argv 时 Pylint 误报

    我有一个解压脚本sys argv到一个函数中 像这样 import sys def do something a b It doesn t matter what this function does print a b if name m
  • WPF 链绑定

    我想创建一个像这样的链绑定 我有一个用户控件 在具有类似依赖属性的窗口内具有依赖属性 我想将用户控件的依赖属性绑定到窗口的依赖属性 我创建了一个示例项目来演示我的问题 用户控件1 XAML
  • 打印到终端末尾

    Like this picture of apt get how can I print something at the end of the line just like the speed on the screen Although
  • 是否可以将 Google 服务帐户限制为项目内的特定 BigQuery 数据集?

    我已使用 GCP UI 为特定项目设置了一个服务帐号Project X 之内Project X有3个数据集 Dataset 1 Dataset 2 Dataset 3 如果我分配角色BigQuery Admin to Project X目前
  • 对于同一新对象多次调用 Firebase FEventTypeChildAdded 回调

    我正在开发一个 iOS 应用程序 并且我在 Firebase 的登录演示应用程序之上构建了我的项目 我可以通过 Facebook 进行身份验证 并与 Firebase 进行良好的通信 当我按下注销按钮时 运行的代码如下 void logou
  • 如何使用共享网址和命令行从 Google Colab 获取“原始”ipynb 文件?

    为 Google Colab 获取的 共享 url 链接到一个包含大量额外 HTML 的文件 因此当您尝试使用 wget 或 curl 下载该文件时 您不会获得有效的 Jupyter ipynb 文件 如何使用 wget 或 curl 等命
  • Numpy 平均函数舍入误差

    我觉得这很奇怪 有人能告诉我这是怎么回事吗 gt gt gt a 1 0 1 gt gt gt np mean a 0 66666666666666663 gt gt gt 2 0 3 0 6666666666666666 输出末尾的 3
  • 哈希或其他对象的内存大小?

    在 Ruby 1 9 3 中获取给定散列 或任何对象 的大小 以字节为单位 的最佳方法是什么 解决方案 查找特定哈希在 Ruby 中使用的字节数 https stackoverflow com questions 3687073 find
  • Javascript HTML5 Canvas 绘制透明圆圈

    我需要一个函数来在画布上绘制几个圆圈 从 center x y 处的 mousedown 开始 然后将鼠标拖动到 deltaX deltaY 从而为每个圆圈创建半径 r 圆圈不能填充 需要透明 以便用户可以清楚地看到圆圈相交的位置 我当前的
  • 分裂b+树中的节点

    我试图弄清楚当节点溢出时到底会发生什么 信息 在我的 b 树中 每个块有 4 个指针和 3 个数据部分 问题 我明白 当出现溢出时 我们会分成 2 个节点 每个节点有 2 个节点 键 并将中间值插入父节点 而不从子节点中删除 与 b 树不同
  • 获取列表列表中的最大值列表

    我有一个List
  • Python 字典包含编码值

    我有一个熊猫数据框oParameterData我使用 Hive ODBC 连接在 Hadoop 上构建了查询 我用它来填充一个名为的 Python 字典oParameter import pyodbc import pandas oConn
  • iOS - 如何在更改视图时停止背景音乐

    如何在改变视图时停止背景音乐 我没有任何线索 如果我按下一个按钮 将我带到一个新的视图 就会有新的背景音乐 但旧的背景音乐 无限循环 仍在继续 请帮忙 还请示例一些代码 这是我的 void viewDidLoad NSString path
  • 使用 PDO 获取插入和更新 ID

    我想得到mysql insert id使用 PDO 到目前为止 我还没有找到一个可以同时用于插入和更新的好例子 有人有一段完整的代码作为示例吗 If you need pdo gt lastInsertId 要返回刚刚更新的行的 id 如果
  • 下一次部署仅在 Amplify 上失败

    我尝试在 AWS Amplify 上部署 Next js 应用程序 但始终失败 构建在本地环境中运行得非常好 我什至成功地在 Vercel 上部署 但它只在放大上失败 我能够通过创建一个来部署 babelrc文件 但我正在寻找保留 SWC
  • 没有为与上下文路径 [/Struts2Test] 关联的名称空间 [/] 和操作名称 [login] 映射的操作

    我是 Struts2 的初学者 我知道这个问题在这里被问了很多次 但我试图解决它并在这里阅读了很多线程 花了 6 个小时 但仍然无法让它工作 确实需要更多建议 这是我的包裹 Struts2Test Struts2Test src tw co