web-dev-qa-db-ja.com

Struts Hello worldの例:名前空間[/]にマップされたアクションがなく、アクション名エラー

私はStruts2の初心者です。私はストラットのウェブサイトのチュートリアルに従うことにしている。私は このチュートリアル に従いました。私はそれにいくつかの問題があります。 Eclipseで動的Webプロジェクトを作成しました。それから私はチュートリアルに従いました。ただし、例を実行すると、次のエラーが発生します。

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

私は次のディレクトリ構造を持っています

enter image description here

そして私の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>

ご回答ありがとうございます。

11
erencan

struts.xml構成ファイルは、(WEB-INFではなく)クラスパス上にある必要があります。

リンクされたチュートリアルは、Mavenビルドを想定しており、struts.xmlファイルはsrc/main/resourcesに配置する必要があると述べています。これは、Mavenビルドのクラスパスに含まれます。その部分を無視しているので、ソースディレクトリのルートに配置することをお勧めします。

17
Dave Newton

classes/の下にWEB-INF/フォルダーを作成し、struts.xmlファイルに入れる必要があります。

3
Riadh

プロジェクトを右クリックします。プロパティデプロイメントビルドパスに移動し、すべての.jarファイルを/ WEB-INF/libに追加します。
その後、このエラーは発生しないはずです。

struts.xmlは、ディレクトリsrc /struts.xmlの下に配置する必要があります。

そして、WEB-INF/web.xmlでは、フィルターに基づいて支柱を構成する必要があります。

2
Raviteja

たとえば、default-action-refタグを追加することで問題を解決しました。

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

パッケージタグの後

struts.xmlで

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

<default-action-ref name="upload" />
1
sermyro

同じエラーが発生し、再起動時にTomcatログを確認することで解決策が得られました:doctypeが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">

今それは動作します!

1
seb

私は同じ問題を抱えていましたが、struts.xmlで名前空間が正しく言及されていなかったために直面​​していました。

Web.xmlに次のスニペットを追加しました。

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

また、名前空間を「/」のデフォルトとして作成しています...クエリに応答することを願っています。

0
joshi0788