11

我是 Struts2 的绝对初学者。我正在关注 struts 网站上的教程。我按照本教程进行操作。我有一些麻烦。我在 Eclipse 上创建了动态 Web 项目。然后我按照教程。但是,当我运行示例时,出现以下错误。

There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location]

我有以下目录结构

在此处输入图像描述

我的 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>

  <constant name="struts.devMode" value="true" />

  <package name="basicstruts2" extends="struts-default" namespace="/">

  <action name="index">
    <result>/index.jsp</result>
  </action>

  <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
    <result name="SUCCESS">/HelloWorld.jsp</result>
  </action>

</package>

</struts>

感谢您的回复。

4

7 回答 7

18

struts.xml配置文件需要在类路径上(而不是 in )WEB-INF

链接的教程假定一个 Maven 构建并声明struts.xml文件应该进入src/main/resources,它将包含在 Maven 构建的类路径中。由于您忽略了该部分,因此您可能希望将其放在源目录的根目录中。

于 2012-01-24T18:11:59.473 回答
3

您必须在classes/下面创建一个文件夹WEB-INF/并将其放入您的struts.xml文件中!

于 2012-09-23T22:17:34.347 回答
2

右键单击该项目。转到属性部署构建路径并将所有 .jar 文件添加到 /WEB-INF/lib。
那么你不应该得到这个错误。

struts.xml 应该位于目录下:src/struts.xml..

而WEB-INF/web.xml你我们需要配置基于filter的struts..

于 2013-04-25T08:30:17.883 回答
1

我遇到了同样的错误,并在重新启动时查看了 tomcat 日志的解决方案:doctype was missing instruts.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">

现在它起作用了!

于 2013-06-11T10:25:33.693 回答
1

我通过添加 default-action-ref 标签解决了这个问题,例如,

<default-action-ref name="home" />

包裹标签后

在 struts.xml 中

<package name="user" namespace="/" extends="struts-default">

<default-action-ref name="upload" />
于 2013-09-22T06:17:31.743 回答
0

我遇到了同样的问题,因为没有在 struts.xml 中正确提及命名空间,所以我遇到了这个问题。

我在 web.xml 中添加了以下代码段:

<welcome-file>login.jsp</welcome-file>

并将命名空间设为“/”默认值...希望它能回答您的查询..

于 2014-10-01T10:18:43.550 回答
-1

就我而言,我不得不重命名Struts.xml--->struts.xml

于 2015-01-24T21:02:30.670 回答